2011-12-02 88 views
1

我有一個爲我的Spring配置定義的自定義作用域,我想在我的自定義作用域創建後立即初始化一些我的bean。目前我的bean沒有被初始化,因爲它可能沒有在範圍準備好的時候被調用。如何在創建自定義作用域時初始化bean

「myScope」是通過Java代碼創建的。

<bean id="myAdvice" class="com.myclass" scope="myScope"> 
<property name="name1" ref="ref1" />  
</bean> 

回答

0

「的MyScope」 通過Java代碼創建的。

那麼要麼切換到XML或到Java-based configuration。如果你這樣做,你的示波器可以有lifecycle callback methods,實現InitializingBean等。

如果你沒有,你必須自己以編程方式初始化範圍。您將使用applicationContext.getAutowireCapableBeanfactory()並使用AutowireCapableBeanFactory手動連接示波器,使用諸如 AutowireCapableBeanFactory.initializeBean(Object, String)之類的內容來後續處理範圍(該範圍也將執行任何註冊的生命週期回調)。