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 ?
Considérez le scénario suivant :
<code class="java">public class MyClass { @Autowired private AnotherBean anotherBean; } ... MyClass obj = new MyClass();</code>
Vous avez instancié MyClass manuellement mais souhaite injecter ses dépendances comme anotherBean. Comment procéder ?
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>
À 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>
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!