Maison > Java > javaDidacticiel > le corps du texte

Comment injecter des dépendances dans des objets auto-instanciés au printemps à l'aide d'AutowireCapableBeanFactory ?

Barbara Streisand
Libérer: 2024-10-28 18:24:02
original
813 Les gens l'ont consulté

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

Utiliser AutowireCapableBeanFactory pour injecter des dépendances dans des objets auto-instanciés

Au Spring, vous pouvez créer vous-même des objets et y injecter des dépendances même après leur création. Ceci est possible grâce à la classe AutowireCapableBeanFactory. Explorons comment y parvenir :

Considérons la classe suivante :

<code class="java">public class MyClass {
    @Autowired private AnotherBean anotherBean;
}</code>
Copier après la connexion

Vous pouvez instancier cette classe et tenter d'injecter manuellement des dépendances vous-même :

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

Cependant , cette approche n'injectera pas automatiquement la dépendance AnotherBean. Pour résoudre ce problème, vous pouvez utiliser la méthode autowireBean() fournie par AutowireCapableBeanFactory.

Pour accéder à AutowireCapableBeanFactory, connectez-le simplement vous-même en tant que dépendance :

<code class="java">private @Autowired AutowireCapableBeanFactory beanFactory;

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

En appelant autowireBean(), Spring reconnaît l'instance obj comme si elle l'avait créée elle-même. Il injecte ensuite les dépendances nécessaires en fonction des annotations (par exemple @Autowired) présentes sur les propriétés de l'objet. Dans ce cas, l'instance obj aura sa dépendance AnotherBean automatiquement câblé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
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!