我有一个延迟初始化的 bean,并且有几个要设置的参数和属性。
<bean id="abc" class="a.b.c.abc" lazy-init="true">
<constructor-arg ref="qwert" />
<property name="aImplementations">
<list>
<ref bean="newBean" />
</list>
</property>
</bean>
而newBean
定义为 <bean id="newBean" class="a.b.c.newBean" lazy-init="true" init-method="init" />
但是惰性 bean 被初始化并调用 init() 方法。
如果我删除bean 'abc'
并保留 newBean
,newBean类的init()方法没有被调用。
可能是什么原因?我在 Google 上进行了搜索,但没有找到任何帮助。
最佳答案
只有当一个bean没有被任何其他bean引用或者它被另一个延迟初始化的bean引用时,它才会被延迟初始化。您的 bean 'abc' 是非惰性的,在构建此 bean 时,它必须将 newBean 插入 abc。
关于java - 延迟初始化一个由另一个延迟初始化 bean 引用的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234399/