点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!
相信使用Mybaits的小伙伴们一定会经常编写类似如下的代码:
可以看到 userMapper 下有个红色警告。虽然代码本身并没有问题,能正常运行,但有个警告总归有点恶心。本文分析原因,并列出解决该警告的几种方案。
原因
众所周知,IDEA是非常智能的,它可以理解Spring的上下文。然而 UserMapper 这个接口是Mybatis的,IDEA理解不了。
而 @Autowired 注解,默认情况下要求依赖对象(也就是 userMapper )必须存在。而IDEA认为这个对象的实例/代理是个null,所以就友好地给个提示。
解决方案
方法1:为 @Autowired 注解设置required = false
使用 @Autowired 注解时,若希望允许null值,可设置required = false,像这样:
@Autowired(required = false)
private UserMapper userMapper;
这样就不会有警告了。原因很好理解:IDEA认为userMapper是个null,给了警告;