Maison > Java > javaDidacticiel > le corps du texte

Comment injecter des dépendances dans des objets auto-instanciés au printemps ?

Barbara Streisand
Libérer: 2024-10-29 23:46:29
original
274 Les gens l'ont consulté

How to Inject Dependencies into Self-Instantiated Objects in Spring?

Surmonter les défis d'injection pour les objets auto-instanciés dans Spring

Lorsque vous travaillez avec Spring, il est courant de gérer les dépendances via des annotations et l'injection de dépendances. Cependant, des situations peuvent survenir dans lesquelles vous disposez d'un objet auto-instancié en dehors du contexte Spring. Dans de tels cas, comment pouvez-vous toujours exploiter les capacités d'injection de Spring ?

Le dilemme : instanciation manuelle et gestion des dépendances

Considérez le scénario suivant :

<code class="java">public class MyClass {
    @Autowired private AnotherBean anotherBean;
}

...

MyClass obj = new MyClass();</code>
Copier après la connexion

Vous avez instancié MyClass manuellement mais souhaite injecter ses dépendances comme anotherBean. Comment procéder ?

Solution : Utiliser AutowireCapableBeanFactory

Spring fournit l'interface AutowireCapableBeanFactory, qui nous permet d'injecter des dépendances dans n'importe quel objet arbitraire, y compris ceux auto-instanciés. Pour accéder au BeanFactory :

<code class="java">private @Autowired AutowireCapableBeanFactory beanFactory;</code>
Copier après la connexion

Injecter des dépendances dans un objet auto-instancié

À l'aide du beanFactory, vous pouvez injecter des dépendances dans votre objet :

<code class="java">public void doStuff() {
   MyBean obj = new MyBean();
   beanFactory.autowireBean(obj);
   // obj will now have its dependencies autowired.
}</code>
Copier après la connexion

Après en appelant autowireBean, votre objet instancié verra ses dépendances injectées et prêtes à l'emploi. Cette approche vous permet d'exploiter les capacités d'injection de dépendances de Spring même pour les objets que vous créez manuellement.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!