1

ハードコードされた別の Bean を含む独自の Bean があるとします。

これをSpring構成に参加させる方法は?

最初の方法は、factory-method を使用することです。

<bean id="bean1" class="myClass1"/>
<bean id="bean1.member" factory-bean="bean1" factory-method="getMember"/>
<bean id="bean2" class="myClass2">
   <property name="collaborator" ref="bean1.member"/>
</bean>

もう 1 つの方法は、EL を使用することです。

<bean id="bean1" class="myClass1"/>
<bean id="bean2" class="myClass2">
   <property name="collaborator" value="#{bean1.member}"/>
</bean>

後者の場合、Spring は依存関係を認識しません。とにかく、Eclipse の Bean Graph は無関係な Bean を表示します。

より良い方法はありますか?MyClass1コンテナまたはコンテキストとして扱われるように、いくつかのインターフェイスを実装することはできますか?

4

1 に答える 1

0

のために別の Bean を作成し、bean1.memberそれを注入する必要がありますbean1

<bean id="bean3previouslyMember" class="myCompoundBean"/>

<bean id="bean1" class="myClass1">
   <property name="member" ref="bean3previouslyMember"/>
</bean>
<bean id="bean2" class="myClass2">
   <property name="collaborator" ref="bean3previouslyMember"/>
</bean>

myClass1 が変更可能でなく、setter がない場合を除き、これは通常行うことです。

于 2012-11-04T12:24:18.337 に答える