这是我的场景。我有两个班级ClassA和ClassB。ClassB继承ClassA。
我@Component
对它们都使用了注释来使它们成为 Spring bean。
@Component
public class ClassA{
// parent
}
@Component
public class ClassB extends ClassA{
// child
}
public class ClassC{
@Autowired
private ClassA classA;
public void doSomething(){
}
}
现在,每当我尝试在ClassC@autowired
中使用注释来注入ClassA时,如上所示,我得到以下异常。
没有定义类型 [ ClassA ] 的唯一 bean:预期的单个匹配 bean 但找到了 2: [ classA,classB ]
我知道当按类型自动连接时,spring 会找到两个可分配给ClassA的 bean,因此它会引发异常。
除了使用@Qualifier
注释和按名称自动连接之外,是否有一种简单的方法可以解决此问题?
我可以指示 spring 不仅检查可按类型分配的 bean,而且检查它是否是完全相同的类类型?