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" />

しかし、遅延ビーンが初期化され、 init() メソッドが呼び出されます。

Bean を削除してそのままに'abc'しておくnewBeanと、newBean クラスの init() メソッドは呼び出されません。

その理由は何ですか?Googleで検索しましたが、助けにはなりませんでした。

4

1 に答える 1

0

Bean は、他の Bean から参照されていない場合、または別の遅延初期化された Bean から参照されている場合にのみ、遅延初期化されます。あなたの Bean 'abc' は非遅延であり、この Bean の構築中に abc に newBean を挿入する必要があります。

于 2012-11-05T14:47:07.070 に答える