簡體   English   中英

沒有類型異常的唯一bean。 自動裝配繼承類的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM