No qualifying bean of type ‘xxx.xxx.xxx’ available: expected single matching bean but found 2:xxx.xxx.xxx
創(chuàng)新互聯(lián)建站總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計、網(wǎng)站維護、公眾號搭建、微信小程序開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動行銷領(lǐng)域創(chuàng)造價值而不懈努力!
對于一個java開發(fā)新手來說, 應(yīng)該經(jīng)常會遇到這個問題,而且還不好意思詢問周圍同事,不要怕,今天就讓我們解決掉它。
問題及解決方案 問題1 包掃描不正確或未掃描springboot
,他會默認掃描啟動類(使用了注解@SpringBootApplication)所在的包及子包,掃描的包中是否包含當前類所在的包。scanBasePackages
掃描路徑是否包含當前類所在的包。將當前類所在的包加入掃描路徑即可,例如當前類所在包為com.demo1
@SpringBootApplication(@SpringBootApplication(scanBasePackages = {"com.demo","com.demo1"}))
切記不要忘了掃描當前啟動類所在的包 ,否則又會導(dǎo)致其他類不能注入。
增加對應(yīng)注解將類注入到spring環(huán)境即可,例如:
@Service
public class ServiceImpl1 implements Service{}
或
@Component
public class ServiceImpl1 implements Service{}
或
@Bean
public ServiceImpl serviceImpl(){return new ServiceImpl();
}
使用@Bean方法所在的類也必須是要注入到spring環(huán)境中的。
查看當前接口是否被多個類實現(xiàn)
多個實現(xiàn)類是否未設(shè)置BeanName或者設(shè)置了相同的BeanName,例如:
@Service
public class ServiceImpl1 implements Service{}
@Service
public class ServiceImpl2 implements Service{}
或
@Service("Service1")
public class ServiceImpl3 implements Service{}
@Service("Service1")
public class ServiceImpl4 implements Service{}
以上方式都會出現(xiàn)異常。
注入Bean時是否指定了設(shè)置的BeanName,例如:
@Autowired
private Service service;
當我們需要多個類實現(xiàn)同一個接口時,需要為每個實現(xiàn)類配置BeanName,例如:
@Service("serviceImpl3")
public class ServiceImpl3 implements Service{}
@Service("serviceImpl2")
public class ServiceImpl2 implements Service{}
@Service("serviceImpl1")
public class ServiceImpl1 implements Service{}
建議首字母小寫。
以上沒有問題,那么使用的時候還需要指定BeanName,例如:
@Qualifier(value = "serviceImpl1")
@Autowired
private Service service;
關(guān)于@Qualifier使用,詳見:Spring @Qualifier 注釋
如果不想在每個使用處設(shè)置@Qualifier,只想在特殊場景下設(shè)置,那么只需要在默認的實現(xiàn)類上增加注解@Primary,例如:
@Primary
@Service
public class ServiceImpl implements Service{}
那么在使用的時候就可以直接注入了,默認會使用ServiceImpl,例如:
@Autowired
private Service service;
注意事項當存在多個相同類型的Bean,強烈建議使用@Primary
把其中某一個Bean標識為“主要的”,使用@Autowired
注入時會首先使用被標記為@Primary
的Bean。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站標題:Noqualifyingbeanoftype問題解決-創(chuàng)新互聯(lián)
URL地址:http://www.rwnh.cn/article6/djpsig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、品牌網(wǎng)站制作、動態(tài)網(wǎng)站、營銷型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容