基于Spring整合mybatis注解掃描是否成功的問題
Spring整合mybatis注解掃描是否成功
IDEA spring整合mybatis會使用注解掃描的配置
<context:component-scan base-package="/>
不管是使用@ Component、@Service、@Controller還是Repository,都是spring ioc操作bean的注解,其實(shí)際功能都是一樣的,都是用來創(chuàng)建bean實(shí)例對象的。
正常情況下,如果自動掃描陳宮,IDEA類的界面在左側(cè)會有綠色的C標(biāo)記,如圖所示。
AutoWired注解下面的類屬性左側(cè)也會有一個灰色的箭頭和綠色的圓的標(biāo)記,如果沒有配置成功,那么就不會有這兩個標(biāo)記。
對于沒有配置成功的情況,可以點(diǎn)擊Project Strcuture ,點(diǎn)擊modules,模塊的srping部分,點(diǎn)擊圖中的加號,選擇模塊下面框里的所有xml文件,導(dǎo)入就可以了。
Mybatis注解@MapperScan掃描包報:Invalid bound statement (not found)
前幾天,因?yàn)闊o知,將@MapperScan的路徑修改到dao的上一層,如下:
在此情況下,對dao層進(jìn)行Junit測試,測試通過;但對service層測試,則報錯,報錯如下:
于是乎我就找了度娘,很多老鐵也給了各種解決方法(以下解決方法取自網(wǎng)絡(luò)):
1.檢查xml文件所在package名稱是否和Mapper interface所在的包名。
2.UserDao的方法在UserDao.xml中沒有,然后執(zhí)行UserDao的方法會報此。
3. UserDao的方法返回值是List<User>,而select元素沒有正確配置ResultMap,或者只配置ResultType。
4. 如果你確認(rèn)沒有以上問題,請任意修改下對應(yīng)的xml文件,比如刪除一個空行,保存,問題解決。
5.看下mapper的XML配置路徑是否正確
但是我沒有在上面的描述中解決我所報的錯誤,而我又是用springboot的注解模式的,于是我就對報錯中的cachedMapperMethod
進(jìn)行debug測試,找到了問題所在。
通過Junit測試dao層,得到debug相關(guān)信息,并沒有任何異常,如下:
通過Junit測試service層,得到debug相關(guān)信息,如下所示,發(fā)現(xiàn)了問題所在,service接口也被mybatis接管了,而@MapperScan
作用:指定要變成實(shí)現(xiàn)類的接口所在的包,然后包下面的所有接口在編譯之后都會生成相應(yīng)的實(shí)現(xiàn)類。
總結(jié)
使用Mybatis的注解@MapperScan需要制定到項(xiàng)目中的dao層,避免其他的接口也被接管了。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC域?qū)ο蠊蚕頂?shù)據(jù)示例詳解
這篇文章主要為大家介紹了SpringMVC域?qū)ο蠊蚕頂?shù)據(jù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05SpringBoot配置log4j2的實(shí)現(xiàn)示例
SpringBoot中默認(rèn)使用Logback作為日志框架,本文主要介紹了SpringBoot配置log4j2的實(shí)現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-12-12Java解決線程的不安全問題之volatile關(guān)鍵字詳解
這篇文章主要介紹了Java解決線程的不安全問題之volatile關(guān)鍵字詳解,可見性指一個線程對共享變量值的修改,能夠及時地被其他線程看到,而 volatile 關(guān)鍵字就保證內(nèi)存的可見性,需要的朋友可以參考下2023-08-08Mybatis-Plus開發(fā)提速器generator的使用
本文就介紹這款基于Mybatis-Plus的代碼自助生成器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用配置常用相關(guān)視圖解析器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12SpringBoot+Vue添加騰訊云人臉識別的項(xiàng)目實(shí)踐
人臉識別是一種基于人臉特征進(jìn)行身份認(rèn)證和識別的技術(shù),本文主要介紹了SpringBoot+Vue添加騰訊云人臉識別的項(xiàng)目實(shí)踐,具有一定的參考價值,感興趣的可以了解一下2023-08-08