Bean を部分的に自動配線したい - つまり、いくつかの引数を自動配線し、他の引数を明示的に設定したい。例えば:
public MyClient(Service svc, boolean b)
このコンストラクターの場合、xml で b の値を指定したいのですが、svc は自動配線されています。それは可能ですか?
ありがとう、ローウェル
Bean を部分的に自動配線したい - つまり、いくつかの引数を自動配線し、他の引数を明示的に設定したい。例えば:
public MyClient(Service svc, boolean b)
このコンストラクターの場合、xml で b の値を指定したいのですが、svc は自動配線されています。それは可能ですか?
ありがとう、ローウェル
コンストラクターでは可能だとは思いませんが、明示的なセッターでは確かに可能です。@Autowired で自動配線したいものに注釈を付け、他のものを構成ファイルに設定するだけです
何かのようなもの:
public MyClient() {}
@Autowired
public setService (Service svc) {...}
public setBoolean (boolean b) {...}
そして、あなたの設定で
<context:annotation-config />
<bean id="service">...</bean>
<bean id="yourbean" class="MyClient">
<property name="b" value="true"/>
</bean>
私は自分でそれを理解しました、万歳!
私がやった方法は、xmlに次のようなものを入れることでした:
<bean class="MyClient" autowire="constructor">
<constructor-arg index="1">...</constructor-arg>
<bean>