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>
Vous pouvez instancier cette classe et tenter d'injecter manuellement des dépendances vous-même :
<code class="java">MyClass obj = new MyClass();</code>
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>
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!