解決bean對象注入報錯:Field in required a bean of type‘‘that could not be found.問題
問題現(xiàn)象
今天在運行新項目的時候,出現(xiàn)了一下報錯:
Field XxxUserExtDao in com.xxx.auth.service.controller.abs.BaseController required a bean of type 'com.xxx.auth.service.mapper.run.XxxUserExtDao' that could not be found.

問題分析
前提
在完成上述操作之前,請先基于mybatis創(chuàng)建好dao層接口類對應(yīng)的dao層實現(xiàn)類(一般都是以xml文件的形式,并確保mapper標(biāo)簽的namespace屬性指定為dao層接口類的全路徑。)
從報錯信息可知:
這是因為spring的Ioc容器在注入bean對象的時候,在 BaseController 類中檢測到了 @Autowired 注解,于是就會去尋找這個 XxxUserExtDao 對象的注入方式:


然后檢測到 XxxUserExtDao 這個類中帶有 @Component 注解,該注解用于除了@Controller(控制層)、@Service(業(yè)務(wù)層)、@Repository(dao層的實現(xiàn)類)之外,需要注入成bean對象的類;
注意:
這里值得一提的是:由于dao層的實現(xiàn)類對于項目結(jié)構(gòu)而言,太冗余了,每寫一個dao層接口,就得手寫一個實現(xiàn)類,于是我們可以通過注解的方式,來實現(xiàn)自動創(chuàng)建dao層實現(xiàn)類,而不再需要自己手動創(chuàng)建實現(xiàn)類和添加@Repository注解了,方式有兩種:
1. 在 dao層接口類 上添加 @Mapper注解。 作用:在接口類上添加了 @Mapper注解 ,在編譯之后會自動生成相應(yīng)的接口實現(xiàn)類:

2. 在 主類(啟動類)上添加 @MapperScan注解,并指定dao層接口的包路徑,在編譯之后會自動生成相應(yīng)的接口實現(xiàn)類。

建議
兩種方法取其中一種即可,這里建議使用方法2,這樣就不需要每個dao層都添加@Mapper注解了!?。?/strong>
解決方法
在 主類(啟動類)上添加 @MapperScan注解,并指定dao層接口的包路徑,在編譯之后會自動生成相應(yīng)的接口實現(xiàn)類:

啟動成功:

調(diào)用接口成功:

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring boot項目fat jar瘦身的實現(xiàn)
這篇文章主要介紹了spring boot項目fat jar瘦身的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
Java進(jìn)階學(xué)習(xí):jar打包詳解
Java進(jìn)階學(xué)習(xí):jar打包詳解...2006-12-12
SpringBoot實現(xiàn)接口等冪次校驗的示例代碼
本文主要介紹了SpringBoot實現(xiàn)接口等冪次校驗的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
Spring boot整合shiro+jwt實現(xiàn)前后端分離
這篇文章主要為大家詳細(xì)介紹了Spring boot整合shiro+jwt實現(xiàn)前后端分離,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-12-12
SpringBoot項目實現(xiàn)分布式事務(wù)的實戰(zhàn)指南
在微服務(wù)架構(gòu)中,分布式事務(wù)是確??绶?wù)數(shù)據(jù)一致性的關(guān)鍵技術(shù),SpringBoot作為主流的Java開發(fā)框架,提供了多種分布式事務(wù)解決方案,本文將深入探討這些方案,幫助開發(fā)者根據(jù)業(yè)務(wù)場景選擇最適合的方案,需要的朋友可以參考下2025-10-10

