我为 Spring 配置定义了一个自定义范围,我想在创建自定义范围后“立即”初始化一些 bean。目前我的 bean 尚未初始化,因为当作用域准备就绪时,可能没有在正确的时间调用它。
“myScope”是通过 Java 代码创建的。
<bean id="myAdvice" class="com.myclass" scope="myScope">
<property name="name1" ref="ref1" />
</bean>
最佳答案
"myScope" is created through Java code.
那么要么切换到 XML 要么切换到 Java-based configuration 。如果这样做,您的范围可以有 lifecycle callback methods ,实现InitializingBean等
如果不这样做,您必须在初始化作用域时以编程方式自己完成所有操作。您将使用 applicationContext.getAutowireCapableBeanfactory() 并使用 AutowireCapableBeanFactory
手动连接范围,使用类似
AutowireCapableBeanFactory.initializeBean(Object, String)
后处理作用域(还将执行任何已注册的生命周期回调)。
关于java - 创建自定义作用域时如何初始化 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8357130/