Maison > Java > javaDidacticiel > L'utilisation de ApplicationContext.getBean() de Spring est-elle considérée comme un anti-modèle ?

L'utilisation de ApplicationContext.getBean() de Spring est-elle considérée comme un anti-modèle ?

Patricia Arquette
Libérer: 2024-11-27 07:15:12
original
790 Les gens l'ont consulté

Is Using Spring's ApplicationContext.getBean() Considered an Anti-Pattern?

Pourquoi ApplicationContext.getBean de Spring est-il considéré comme mauvais ?

La méthode ApplicationContext.getBean() de Spring peut sembler un moyen pratique d'accéder aux beans, mais cette pratique est généralement considérée comme une mauvaise pratique. Au lieu de cela, l'approche préférée consiste à adopter le concept d'inversion de contrôle (IoC) en utilisant l'injection de dépendances.

Déléguer l'injection de dépendances

L'appel d'ApplicationContext.getBean() viole le principe IoC en introduisant une dépendance à Spring au sein de la classe consommatrice. Cela rend la classe moins flexible et plus difficile à tester. Cela entrave également la possibilité de modifier facilement l'implémentation des dépendances.

Avantages de l'injection de dépendances

L'injection de dépendances offre de nombreux avantages :

  • Classes découples :Les classes deviennent agnostiques quant à la manière dont elles obtiennent leur dépendances.
  • Améliore la testabilité : Des dépendances simulées peuvent être facilement injectées pour les tests.
  • Simplifie le code : Les cours se concentrent sur les responsabilités principales sans se soucier des dépendances gestion.

Mise en œuvre de l'injection de dépendances dans Spring

Au lieu d'invoquer ApplicationContext.getBean(), vous devez déclarer une méthode dans la classe consommatrice pour recevoir la dépendance en argument. Spring injectera automatiquement la dépendance appropriée en fonction de la configuration du bean.

Exemple de configuration

<bean>
Copier après la connexion

Amorçage

Dans la méthode principale, récupérez le bean racine "myApplication" à l'aide de ApplicationContext.getBean("myApplication"). Ce bean racine devrait avoir des dépendances sur tous les autres services, éliminant ainsi le besoin d'appels getBean() ailleurs.

Conclusion

Éviter ApplicationContext.getBean() favorise un véritable IoC dans Spring, ce qui donne un code flexible, testable et maintenable. L'adoption de l'injection de dépendances via des arguments de méthode permet à Spring de remplir son rôle désigné de gestion des dépendances.

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