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

 

转载于:https://www.cnblogs.com/4AMLJW/p/MrSean.html

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值