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

来源:互联网 发布:交互设计软件 编辑:程序博客网 时间:2024/06/09 22:20

问题描述

使用了一段时间的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,问题就不会再出现了,而且这才是从根本上解决问题的方式。
这里写图片描述

阅读全文
0 0