[英]No unique bean of type exception. Issues with autowiring inherited classes
我是Java代碼的新手,我有一個關於自動裝配服務接口的例外。
我必須使用A和B類.B從A擴展,每個類都有自己的服務。
@Service
@Qualifier("aService")
public interface AService {
//Some methods
}
@Service
@Qualifier("bService")
public interface BService {
//Some methods
}
我在一些類中使用這些接口,並且我已經添加了注釋@Qualifer
。
public class Test() {
@Autowired
@Qualifier("aService")
private AService aService;
@Autowired
@Qualifier("bService")
private BService bService;
//Some code
}
但我一直得到例外:
No unique bean of type [com.analysis.dw.AService] is defined : Unsatisfied dependency of type [interface com.analysis.dw.AService]: expected at least 1 matching bean
提前致謝 :)
在類上使用注釋,而不是界面!
@Service
@Qualifier("aService")
public class AServiceImpl implements AService {
//Some methods
}
Spring不會實例化接口。
去除
@Qualifier
來自AService和BService接口的注釋。
查看哪些bean實現了AService接口。
在實現接口AService的bean之間,在字段中選擇要在類Test上注入的bean
private AService aService;
在您選擇的AService實現bean中,使用
@Service("aService")
注解。
您的Test類上的Mantein注釋,
@Autowired
@Qualifier("aService")
private AService aService;
BService的相同場景是否存在BService接口的多個實現。
a)看Grzegoz的回答
b)這不是這樣做的方法:
@Service
@Qualifier("aService")
相反,這是做到這一點的方法:
@Service("aService")
@Qualifier
用於注入服務,而不是用於構建服務
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.