假設我們有一個課程:public class MyClass { @Autowired private AnotherBean anotherBean;}然后,我們創建了此類的一個對象(或其他一些框架創建了此類的實例)。MyClass obj = new MyClass();是否仍然可以注入依賴項?就像是:applicationContext.injectDependencies(obj);(我認為Google Guice有這樣的內容)
3 回答

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
您可以使用的autowireBean()方法執行此操作AutowireCapableBeanFactory。您將其傳遞給一個任意對象,Spring將把它當作它自己創建的對象對待,并將應用各種自動裝配的點點滴滴。
要掌握AutowireCapableBeanFactory,只需自動連線即可:
private @Autowired AutowireCapableBeanFactory beanFactory;
public void doStuff() {
MyBean obj = new MyBean();
beanFactory.autowireBean(obj);
// obj will now have its dependencies autowired.
}

ibeautiful
TA貢獻1993條經驗 獲得超6個贊
您還可以使用@Configurable批注標記MyClass:
@Configurable
public class MyClass {
@Autowired private AnotherClass instance
}
然后在創建時它將自動注入其依賴項。您還應該<context:spring-configured/>在應用程序上下文中具有xml。
添加回答
舉報
0/150
提交
取消