私は、Spring Bean間の広範囲な結合を持つ大規模なSpringベースのプロジェクトに取り組んでいる春の初心者です。私は、アプリケーション全体の機能のサブセットを実行するいくつかの統合テストを作成しようとしています。そうするために、私はオートワイヤリングのいくつかを無効にしたいと思います。 例えば、私はクラスでSpring @Autowireアノテーションをオーバーライドしてフィールドをnullに設定するにはどうすればよいですか?
public class MyDataServiceImpl implements MyDataService {
@Qualifier("notNeededForMyDataServiceTest")
@Autowired
private NotNeededForMyDataServiceTest notNeededForMyDataServiceTest;
//...
}
とコンテキストファイルがあるとします。私のテストでは
<bean id="myDataService"
class="MyDataServiceImpl">
</bean>
を、私はnotNeededForMyDataServiceTest
フィールドを使用する必要がありません。私は@Autowired
注釈をオーバーライドして、XMLファイルで、おそらく、notNeededForMyDataServiceTest
はnullに設定することができますいくつかの方法はありますか?私はJavaクラスを変更したくないですが、私はnotNeededForMyDataServiceTest
の(問題のある)設定を避けたいと思います。
私がやってみました:
動作しません<bean id="myDataService"
class="MyDataServiceImpl">
<property name="notNeededForMyDataServiceTest"><null/></property>
</bean>
。 IntelliJは、 "プロパティ 'notNeededForMyDataServiceTest'を解決できません。"、明らかにそのフィールドにゲッターとセッターがないためです。
私は春のフレームワーク3.1.3を使用しています。
あなたは試しましたか? これはあなたに文字列nullを与えますが、少なくとも値を設定することができます –
Jayz