IDEA中Mybatis Mapper自动注入警告问题
在idea里使用Mybaits的编写代码发现可以看到 userMapper
下有个红色警告,虽然代码本身并没有问题,能正常运行,但有个警告总归有点让人不舒服。
原因:IDEA可以理解Spring的上下文。然而 UserMapper
这个接口是Mybatis的,IDEA理解不了,而 @Autowired
注解,默认情况下要求依赖对象(也就是 userMapper )必须存在。而IDEA认为这个对象的实例/代理是个null,所以就会有上面的红色警告。
解决方案
方法1:为 @Autowired 注解设置required = false
这样就不会有警告了。原理:IDEA认为userMapper
是个null,给了警告;加上required = false
后,使用 @Autowired
注解不再去校验userMapper
是否存在了。也就不会有警告了。
方法2:用 @Resource 替换 @Autowired
这样也不会有红色警告了,原理:百度 @Autowired 与@Resource的区别
方法3:在Mapper接口上加上@Repository注解
这样也不会有红色警告了,原理:加上@Repository
注解后,idea就不会认为userMapper
是个null就不i会报错
方法4:使用Lombok
方法5:安装mybatis plugin红色警告就会消失
方法6:终极大招:关掉idea的警告????
参考文档