1

我有一个延迟初始化的 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() 方法。

可能是什么原因?我在谷歌上搜索但没有帮助。

4

1 回答 1

0

只有当一个 bean 没有被任何其他 bean 引用或者它已经被另一个惰性初始化 bean 引用时,它才会被惰性初始化。你的 bean 'abc' 是非惰性的,在构造这个 bean 时,它必须将 newBean 插入 abc。

于 2012-11-05T14:47:07.070 回答