私は、リソースの配列を注入したいと思うbeanを持っています。コンストラクタインジェクションのために複数の引数の中から1つだけを自動配線できますか?
org.springframework.core.io.Resource[]
は実際には、InputStreamSourceの配列は十分でした。 、
public SomeClass(InputStreamSource[] sources);
それが動作しないので、私はしぶしぶ
public SomeClass(InputStreamSource[] sources, ResourcePatternResolver resolver);
を持っていることを選んだ。しかし、今:
私のコンストラクタだった<bean id="..." class="com.usta.SomeClass">
<constructor-arg value="classpath:somedir/*.xml"/>
</bean>
:私のようなものを見て、私のBean定義を望んでいましたApplicationContext(ResourcePatternResolver)をこのビーアにどのように注入できますか?コンストラクタインジェクションを介してn?あるいは、このコンストラクタ引数を自動配線するだけでいいですか?
私はSetter Injection(ResourceLoaderAware)がこれを解決すると知っていますが、私はコンストラクターインジェクションを可能な限り固執しています。
SomeClassリソースいくつかの初期化前;セッター注入で私は初期化を延期しなければならず、SomeClassのフィールドfinalの数を宣言することはできません。
はあなたが@Autowiredとしてコンストラクタをマークしたことがありますか? –
新しいPathMatchingResourcePatternResolver()を作成してみませんか? – mrembisz
@mrembisz私は確かにそれを使用しています。しかし、なぜちょうどApplicationContextを注入するのではないかと考えました。私はリゾルバを一度使う必要があるだけなので、なぜ新しいものを作るのですか? –