【发布时间】:2012-10-24 21:32:41
【问题描述】:
这是我的场景。我有两个类 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,而且检查它是否是完全相同的类类型?
【问题讨论】:
标签: spring