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

当使用Spring Boot开发项目时,遇到"Could not autowire. No beans of 'UserMapper' type found"的错误,通常是由于没有正确配置或引入相关的bean导致的。根据你提供的引用内容,我可以给出以下几种解决方案: 1. 将@Mapper注解改为@Repository:根据中的解决方法,将@Mapper注解改为@Repository注解可以解决问题。这可能是由于Spring的自动扫描配置无法找到对应的bean,从而提示找不到对应bean的错误。 2. 将@Autowrited注解改为@Autowrited(required = false):同样根据中提供的方法,将@Autowrited注解改为@Autowrited(required = false)也可以解决问题。这是因为当required属性设为false时,Spring在注入bean时不会强制要求找到对应的bean,因此不会报错。 3. 修改IDEA配置:根据中提供的链接,可以参考修改IDEA的配置来解决该问题。具体方法可以在该链接中找到。 需要注意的是,这个错误并不影响代码的编译和运行,只是一个提示,因此即使不解决该错误,代码也可以正常运行。同时,@Autowired注解是用来自动装配的,根据类型进行自动装配,如果需要按名称进行装配,则需要配合@Qualifier使用。 综上所述,根据你提供的引用内容,可以通过将@Mapper注解改为@Repository、将@Autowrited注解改为@Autowrited(required = false)或修改IDEA的配置来解决"Could not autowire. No beans of 'UserMapper' type found"的错误。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值