IDEA中Mybatis Mapper自动注入警告问题

在idea里使用Mybaits的编写代码发现可以看到 userMapper下有个红色警告,虽然代码本身并没有问题,能正常运行,但有个警告总归有点让人不舒服。
IDEA中Mybatis Mapper自动注入警告问题
原因:IDEA可以理解Spring的上下文。然而 UserMapper 这个接口是Mybatis的,IDEA理解不了,而 @Autowired 注解,默认情况下要求依赖对象(也就是 userMapper )必须存在。而IDEA认为这个对象的实例/代理是个null,所以就会有上面的红色警告。

解决方案

方法1:为 @Autowired 注解设置required = false

IDEA中Mybatis Mapper自动注入警告问题
这样就不会有警告了。原理:IDEA认为userMapper是个null,给了警告;加上required = false后,使用 @Autowired 注解不再去校验userMapper是否存在了。也就不会有警告了。

方法2:用 @Resource 替换 @Autowired

IDEA中Mybatis Mapper自动注入警告问题
这样也不会有红色警告了,原理:百度 @Autowired 与@Resource的区别

方法3:在Mapper接口上加上@Repository注解

IDEA中Mybatis Mapper自动注入警告问题
IDEA中Mybatis Mapper自动注入警告问题
这样也不会有红色警告了,原理:加上@Repository注解后,idea就不会认为userMapper 是个null就不i会报错

方法4:使用Lombok

IDEA中Mybatis Mapper自动注入警告问题

方法5:安装mybatis plugin红色警告就会消失

方法6:终极大招:关掉idea的警告????

参考文档

Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案.