3
这是我的场景。我有两个类类A和类B。 ClassB继承ClassA。
我使用@Component
这两个注释来使它们成为Spring bean。自动装配分层bean
@Component
public class ClassA{
// parent
}
@Component
public class ClassB extends ClassA{
// child
}
public class ClassC{
@Autowired
private ClassA classA;
public void doSomething(){
}
}
现在,每当我尝试使用@autowired
标注在ClassC注入如上图所示ClassA的,我得到下面的异常。
类型的无独特豆[ClassA的]被定义:预期单一匹配豆但发现2:[CLASSA,CLASSB]
我明白的是,当自动布线通过类型,春天发现两个豆可分配到类A,所以它会引发异常。
是否有使用@Qualifier
注释和自动布线的名字除了解决此问题的一个简单的方法?
我可以指示春天不仅检查一个bean是按类型分配还要检查一下,看它是否是完全一样的类类型?
这会为我工作。 – Sashi
“会有”?不是吗? – pap
对不起,我在完成之前意外提交了我的评论。对于我提出的问题,使用主注释是正确的答案。不幸的是,在我的情况下,ClassA和ClassB是JPA数据仓库,主注解似乎不适用于他们。相反,我决定使用自定义限定符,它的功能就像一个魅力。 [链接](http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.html) – Sashi