これが私のシナリオです。ClassAとClassBの2つのクラスがあります。ClassBはClassAを継承します。
両方にアノテーションを使用して、@Component
SpringBeanにします。
@Component
public class ClassA{
// parent
}
@Component
public class ClassB extends ClassA{
// child
}
public class ClassC{
@Autowired
private ClassA classA;
public void doSomething(){
}
}
これで、上記のようにClassCでアノテーションを使用してClassAを挿入しようとすると、次の例外が@autowired
発生します。
タイプ[ ClassA ]の一意のBeanは定義されていません:単一の一致するBeanが必要ですが、2が見つかりました:[ classA、classB ]
タイプ別に自動配線すると、SpringはClassAに割り当て可能な2つのBeanを検出するため、例外がスローされることを理解しています。
@Qualifier
名前による注釈と自動配線を使用する以外に、この問題を解決する簡単な方法はありますか?
タイプごとに割り当て可能なBeanをチェックするだけでなく、それがまったく同じクラスタイプであるかどうかをチェックするようにSpringに指示できますか?