質問: ロードされたSpringContextでSpring Beanをプログラムで置き換えることはできますか 私は統合テストを書こうと思っていますが、一つのマイナーな制限があります。私はモックアウトしたいTimeSourceBeanを得ました。このTimeSourceBeanは、アプリケーションの深さ数倍で使用されます。 (反射でこれを行う方法はありません) すべてはオートワイヤーによって行われます。 私は私のテストで、私が持っているような実装で追加のXMLをロードできると思います。 ここを参照してください。 しかし、本当にうまくいくのは、テスト自体にmock TimeSourceBeanを作成し、それを登録する(元のbeanを置き換える)ことができるときです => so before I start the test, I create the mock and register my bean like this: context.registerBean(timeSourceBeanMockVersion); これが可能ならばどんな考えですか?
回答: 同じインターフェースを実装している他のBean /クラス(うまくいけばそれを使用する)を追加して、この他のBeanクラスを@Primaryとしてマークすることができます。 しかし、このプライマリBeanが必要なテストケースにロードされていることを確認する必要があります。