FAQ:idea中springboot项目通过@Autowired注解使mapper注入成功,但出现红色下划线错误问题。

开始说明下,虽然出现红色下划线,但是程序是能跑的通的。既然能正常运行就这样好了,但是身为一个有强迫症又喜欢提问题又好学的程序员,忍不了!所以自己分析了一下出错情况,首先程序运行正常,说明代码没为题,但既然没问题那为什么有报错呢?错误原因是什么呢?会不会是idea识别有问题?所以针对以上问题,网上查了资料,给出以下几种答案,个人觉得除了第一种,其他几种都是正解。

1.第一种方法,降低idea对代码的审查级别。这也是网上最普遍的解决方法,没有之一。但是,我不建议使用,为什么下面再说。

首先把鼠标放到出错的代码上会出现一个小灯泡,然后点击下灯泡的三角,会出现下图的菜单,最后点击Edit inspection profile setting

然后会出现下方的弹窗,接着将级别从Error改为Warning,点击ok,设置成功,红色下划线会消失。

2.第二种方式,添加注解的方式,解决该问题。首先查看出错原因:

出错信息提示说:不能自动装配,UserMapper这个bean没有被找到。这就说明idea或者说是spring认为UserMapper没有注入,所以它找不到故而报错(也是这个原因,不建议使用第一种方法解决)。那这就简单了,那我告诉你我注入了bean就好了啊。所以在mapper或者dao上使用注解@Component或者@Repository来告诉spring我已经把这个bean注入进来了,你自己看着办吧。

3.第三种方法,将@Autowired替换成@Resource效果一样,也能解决红色下划线问题。

(至于@Autowired和@Resource的区别自行百度。)

上一篇:Spring MVC系列-(7) IOC初始化流程


下一篇:基于SpringBoot多模块项目引入其他模块时@Autowired无法注入的问题