本質的に、これは私がしたことです:
1)Bar
遅延インスタンス化を行います。
2) a を使用しLazyInitTargetSource
て、上記の Bean をポイントします。
3) 上記のターゲット ソースを指す「ProxyFactoryBean」を使用します。
4)Foo
積極的にインスタンス化して、上記のプロキシを挿入します。
このソリューションは、ソリューションを使用するよりも冗長で複雑ですlookup-method
。ただしlookup-method
、ソリューションは単体テストが難しく、他のソリューションに比べて Spring との結合が強いと感じています。
構成は次のとおりです。
<bean id="barTarget" class="bar.Bar" lazy-init="true">
<constructor-arg value="423" />
</bean>
<bean id="singletonTargetSource" class="org.springframework.aop.target.LazyInitTargetSource">
<property name="targetBeanName" value="barTarget" />
</bean>
<bean id="bar" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="targetSource" ref="singletonTargetSource" />
</bean>
<bean id="foo" class="foo.Foo">
<property name="bar" ref="bar" />
</bean>