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 )是否规范,至于如何规范我就不多描述了,干这行的基本要领。

 

posted @ 2019-02-15 16:41  向着阳光漫步  阅读(8032)  评论(0编辑  收藏  举报