Error while adding the mapper???Error parsing Mapper XML???could not autowire field???


不解釋.先上控制台提示:

15:20:15,438 ERROR main mapper.MapperFactoryBean:97 - Error while adding the mapper 'interface com.sml.mapper.admin.DeskTopMapper' to configuration.
java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Wrong namespace. Expected 'com.sml.mapper.admin.DeskTopMapper' but found 'com.sml.mapper.admin.MenusInformationMapper'.
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:113)

 (注:這是我網上copy的類似錯誤提示,本人解決時忘了copy控制台的報錯信息,電腦又卡,所以就懶得再次“錯誤驗證法”運行代碼)! ! !

看到我加紅加粗的報錯信息了嗎,簡單明了,首先是mapper文件導入錯誤,然后是你寫的mapper.xml文件語法分析出錯,也就是說你寫的mapper文件里有一些地方語法不規范,系統無法解析,

最后,控制台簡單粗暴地提示了mapper.xml文件出錯的地方:Wrong namespace,意思就是mapper.xml文件引入的命名路徑有誤,既然這樣,我們就去到mapper.xml里頭看看,然后你會發現:

 它就在正文的第一句:<mapper namespace="cn.xxx.mapper.xxxMapper."> 看到了嗎? 我多了一個“ . ”,刪去這個點就沒問題了。

朋友們以后可以細心點,每次導入路徑這些的,都長按Ctrl鍵+鼠標點擊路徑,如果跳轉得過去相關類,就證明路徑沒錯,當然,您必須保證你自己寫的路徑是你想導入的正確接口路徑,錯誤示范:(我應該導入UserMapper,但是我粗心導入了ActionMapper,例如:<mapper namespace="cn.xxx.mapper.ActionMapper">)不然也會報上面的錯誤哦。

 

如果還是存在一些問題造成類似Mapper文件注解出錯的,別擔心,我還有一個萬能解決法: 

(以下是我個人的累積經驗+網上大牛意見的總結)

一般出這種錯誤,無一例外以下幾種情況:

1.jar包是否導入正確,jar有沒有重復的(把低版本的jar刪除,不然容易沖突);

2.在Service層(類似的impI實現類文件是否注解@Service  ,又或者是否注入mapper(@Autowired)

例如:@Autowired

           private xxxMapper xxxMapper ;

          // @Autowired

         //private UserXXXMapper userXXXMapper ;

但是,不能多余注入@Autowired,沒用到的mapper就不要多余的注入,不然也會報錯

3.controller層  是否類頭注入@controller

    方法中用到的Service,必須用@Autowired注解

   例如:@Autowired

             private XXXService xxxService;

4.檢查springmvc.xml與spring文件下的appliationContext.xml等子類配置文件是否正確導入包,不然檢索不到dao,Service,impl,controller

5.最后一步,檢查自己寫的mapper兩個文件( .java .xml )是否規范,至於如何規范我就不多描述了,干這行的基本要領。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM