Dans les applications Spring MVC et Portlet, l'injection de champ fait référence à la pratique consistant à injecter directement une dépendance dans un champ annoté avec @Autowired, comme démontré dans l'exemple suivant :
@Component public class MyComponent { @Autowired private Cart cart; }
Comme alternative, l'injection de constructeur implique de transmettre la dépendance comme un paramètre dans le constructeur :
@Component public class MyComponent { private final Cart cart; @Autowired public MyComponent(Cart cart) { this.cart = cart; } }
Avantages et inconvénients :
L'injection de constructeur offre plusieurs avantages :
L'injection Setter est également une option, fournissant un mécanisme d'injection de dépendances qui peuvent être optionnelles ou modifiables dans le temps.
En revanche, l'injection de champ souffre de plusieurs inconvénients :
Directives d'injection :
Spring recommande les directives suivantes :
Conclusion :
Compte tenu des inconvénients de l'injection de champ, il est généralement conseillé de privilégier l'injection constructeur ou passeur. La commodité de l’injection sur le terrain est contrebalancée par ses inconvénients et limites potentiels.
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!