使用 Spring 時,通常透過註解和依賴注入來管理依賴關係。然而,可能會出現這樣的情況:您在 Spring 上下文之外有一個自實例化的物件。在這種情況下,如何仍然利用 Spring 的注入功能?
考慮以下場景:
<code class="java">public class MyClass { @Autowired private AnotherBean anotherBean; } ... MyClass obj = new MyClass();</code>
您已實例化MyClass 手動但想像 anotherBean 一樣注入它的依賴項。怎麼辦?
Spring 提供了 AutowireCapableBeanFactory 接口,它使我們能夠將依賴項注入到任意物件中,包括自實例化的物件。要存取BeanFactory:
<code class="java">private @Autowired AutowireCapableBeanFactory beanFactory;</code>
使用beanFactory,您可以將依賴項注入到您的物件中:
<code class="java">public void doStuff() { MyBean obj = new MyBean(); beanFactory.autowireBean(obj); // obj will now have its dependencies autowired. }</code>
之後呼叫autowireBean,您的實例化物件將注入其依賴項並可供使用。這種方法允許您利用 Spring 的依賴注入功能,甚至對於您手動建立的物件也是如此。
以上是Spring中如何將依賴注入到自實例化物件中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!