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