Maison > Java > javaDidacticiel > @Resource vs @Autowired : quand utiliser lequel pour l'injection de dépendances au printemps ?

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

Mary-Kate Olsen
Libérer: 2024-11-08 19:14:02
original
400 Les gens l'ont consulté

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

@Resource vs @Autowired dans l'injection de dépendances

Le choix entre @Resource et @Autowired pour l'injection de dépendances a été un sujet de débat parmi Développeurs Java. Bien que les deux annotations servent à injecter des dépendances, elles diffèrent légèrement dans leur approche et leur sémantique.

Concept de @Resource

@Resource, spécifié dans la norme JSR 250 , est conçu pour récupérer une ressource connue par son nom. Ce nom peut être soit explicitement fourni via un attribut, soit déduit de la propriété annotée. En utilisant @Resource, vous exprimez votre intention d'obtenir un bean spécifique par son nom désigné.

Concept de @Autowired

@Autowired, une annotation propre au Spring framework, tente de relier les composants ensemble en fonction de leur type. Il recherche automatiquement les beans correspondant au type du champ ou de la propriété annoté. Cette approche est utile lorsque plusieurs beans du même type sont disponibles et que Spring doit décider lequel injecter.

Recommandations d'utilisation

@Resource et @Autowired peuvent être utilisé efficacement pour l’injection de dépendances. Cependant, il est important de comprendre la différence subtile dans leur sémantique.

  • Utilisez @Resource lorsque vous devez obtenir explicitement un bean sous son nom connu. Ceci est utile lorsque vous contrôlez la dénomination et l'enregistrement des beans dans votre application.
  • Utilisez @Autowired lorsque vous souhaitez que le mécanisme de câblage automatique de Spring gère l'injection. Il est particulièrement adapté lorsque plusieurs beans du même type existent et que vous faites confiance à Spring pour faire le bon choix.

Il est à noter que l'implémentation Spring de @Resource intègre également un mécanisme de secours. Si la ressource ne peut pas être résolue par son nom, elle délègue au câblage automatique basé sur le type de @Autowired. Cela peut être pratique mais peut prêter à confusion si vous n'êtes pas conscient du comportement sous-jacent.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal