Spring アノテーション構成を使用して、インポートされたリソースをオーバーライドすることは可能ですか?
構成クラス:
@Configuration
@ImportResource({"classpath:applicationContext.xml"})
public class CoreConfiguration {
@Resource(name = "classA")
private ClassA classA;
@Bean(name = "nameIWantToOverride")
private ClassB classB() {
return new ClassB("different setting");
}
}
applicationContext.xml には以下が含まれます。
<bean name="classA" class="a.b.c.ClassA">
<property name="nameIWantToOverride" ref="classB" />
</bean>
classA に classB フィールドがあるが、構成クラスで定義した ClassB を使用したい場合、それは可能ですか? 順番を入れ替えてみましたがダメでした。構成をインスタンス化する簡単なテストを実行すると、classB メソッドに到達しないため、XML が優先されるようです。xml ファイルの Bean と一致しないように名前を変更すると、classB メソッドに到達します。
他の方法で機能する場所を見てきました: Spring Framework は XML ベースの構成で注釈ベースの構成をオーバーライドできますか? しかし、この方向はどうですか?これは新しいやり方なので、あなたならできると思います。
これを解決するにはどうすればよいですか?
編集:XMLで更新。classA には複数のフィールドがあると仮定しますが、1 つを置き換えたいだけです。