Maison > Java > javaDidacticiel > Pourquoi devrais-je éviter l'injection sur le terrain au printemps ?

Pourquoi devrais-je éviter l'injection sur le terrain au printemps ?

DDD
Libérer: 2024-12-08 16:26:11
original
1027 Les gens l'ont consulté

Why Should I Avoid Field Injection in Spring?

Comprendre l'injection de champ et son évitement

L'injection de champ, comme le montre l'exemple ci-dessous, se produit lorsqu'un bean est injecté avec @Autowired directement sur son champ :

@Component
public class MyComponent {
    @Autowired
    private Cart cart;
}
Copier après la connexion

En revanche, l'injection de constructeur, comme dans l'exemple ci-dessous, implique l'injection de dépendances via le constructeur :

@Component
public class MyComponent {
    private final Cart cart;

    @Autowired
    public MyComponent(Cart cart){
       this.cart = cart;
    }
}
Copier après la connexion

Directives d'injection

En général, Spring recommande les pratiques d'injection suivantes :

  • Utiliser l'injection de constructeur pour les dépendances obligatoires ou immuabilité.
  • Utiliser l'injection de setter pour une option ou une modification dépendances.
  • Éviter l'injection de champ dans la plupart des cas.

Inconvénients de l'injection de champ

L'injection de champ présente plusieurs inconvénients :

  • Immuabilité : Elle empêche de créer objets immuables.
  • Couplage : Les classes deviennent étroitement liées au conteneur DI, ce qui empêche leur utilisation en dehors de celui-ci.
  • Instantiabilité : L'injection de champ nécessite un Conteneur DI pour l'instanciation, limitant son utilisation dans les tests unitaires.
  • Dépendance Obscurité : Les dépendances restent cachées, obscurcissant les vraies dépendances.
  • Nombre excessif de dépendances : L'injection de champ permet d'ajouter facilement un nombre excessif de dépendances, violant potentiellement la responsabilité unique Principe.

Conclusion

En fonction des besoins, utilisez principalement l'injection de constructeur ou une combinaison d'injection de constructeur et de setter. L'injection sur le terrain présente des inconvénients qui l'emportent sur sa commodité, la rendant généralement déconseillée.

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