IDEA引入dao接口,Could not autowire. No beans of 'UserMapper' type found

问题描述

使用了一段时间的Eclipse做开发,听业界对IDEA的评价蛮高,所以想用IDEA搭建一个框架出来,并做开发,但是这个东西并没有我想象的那么友好,本来一个简易的框架很容易就能够搭建起来的,但是弄了很久都没能完成,主要时间浪费在了填坑的路上,进入正题:使用MyBatis的时候,在ServiceImpl通过SpringMVC注解的形式引入dao接口(@Resource或者@Auterwired),在dao接口(在IDEA里面好像改成了mapper,但实质是一样的)变量上,抛出了如题的异常
这里写图片描述
网上找了很多的解决方案,收效甚微——有人用忽略告警配置的,我的项目里面并不能成功;还有人推荐用@Autowired(required = false)这种方式的,忽略这个dao的bean创建,我的项目倒是能够启动,但我也不可能每一个dao都配置那么一个注解吧?
相似的解决方案还有很多,但是我想说上述的这些方法都不能真正的从本质上解决问题

原因分析

其实这正是IDEA比Eclipse更优秀的地方,你们真别怪IDEA,它只是比Eclipse的校验更加严格而已,所以才会造成类似的报错,譬如在配置文件里能自封闭的标签,你如果用了标签对的形式,他都要抛出警告。好了,说了那么多,最根本的原因在于我们缺少一个Mybatis Plugin的插件支持。

解决方案

打开IDEA,File–>Settings–>Plugins,搜索Mybatis Plugin,选择如图的插件,别选其他的!
这里写图片描述
下载完成以后,这个东西并不能直接启用,因为他要收费,既然是做程序的,就要懂得如何去破解,贴上网址:MyBatis Plugin 学习使用
破解完成后,再次启动IDEA,问题就不会再出现了,而且这才是从根本上解决问题的方式。
这里写图片描述

补充

上述的解决方法已经失效,可以尝试把@Autowired注解换成@Resource注解,这两个注解实现的功能是一样的,只是来源于不同的包而已:

  • @Autowired来源于Spring的包,
  • @Resource来源于java自带的包.

最后,大家有什么不懂的或者其他需要交流的内容,也可以进入我的QQ讨论群一起讨论:654331206

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值