Maison > Java > javaDidacticiel > le corps du texte

@Resource vs @Autowired : quand utiliser lequel pour l'injection de dépendances ?

DDD
Libérer: 2024-11-09 00:45:02
original
1030 Les gens l'ont consulté

@Resource vs @Autowired: When to Use Which for Dependency Injection?

@Resource vs @Autowired : une compréhension conceptuelle

En matière d'injection de dépendances en Java, les développeurs sont souvent confrontés au choix entre les annotations @Resource et @Autowired. Les deux annotations peuvent effectivement injecter des dépendances, mais il existe une différence subtile dans leur sémantique.

L'annotation @Resource, qui fait partie de la spécification JSR-250, implique une demande d'une ressource connue par son nom. Le nom peut être spécifié directement ou déduit du setter annoté ou du nom du champ.

En revanche, @Autowired (ou @Inject) met l'accent sur une approche basée sur le type. Il tente d'injecter un composant approprié en fonction de son type plutôt que de son nom.

Cette distinction conceptuelle est importante à noter, car elle influence directement le comportement de ces annotations. @Resource s'appuie sur un nom de ressource pour localiser une dépendance spécifique, tandis que @Autowired se concentre sur le câblage automatique basé sur la compatibilité de type.

Le framework Spring, cependant, fournit une implémentation de @Resource qui inclut une solution de secours. Si aucune ressource portant le nom spécifié n'est trouvée, il recourt à une injection de dépendances basée sur le type comme @Autowired. Bien que pratique, cette solution de secours prête souvent à confusion, car les développeurs peuvent utiliser par erreur @Resource pour le câblage basé sur le type.

Pour éviter une telle ambiguïté, il est recommandé d'utiliser @Resource pour les scénarios dans lesquels l'injection de dépendances basée sur le nom est explicitement souhaité, et @Autowired (ou @Inject) pour le câblage automatique basé sur le type.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal