6

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 つを置き換えたいだけです。

4

1 に答える 1

6

アノテーションを使用してSpringxml構成をオーバーライドすることはできません。

SpringXML構成は常にアノテーション構成よりも優先されます

于 2012-05-10T14:42:52.753 に答える