2011-12-02 37 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)之类的内容来后续处理范围(该范围也将执行任何注册的生命周期回调)。