Intellij IDEA 中注入Bean的时候总是报错,对于强迫症的我来说,看起来非常难受:
原因分析(据说有2个):
-
IDEA能够识别并理解Spring的上下文,但是我配置的Mapper接口是Mybatis接口,IDEA无法理解,因此出现红色告警。
-
@Autowired 是
属性注入
,但是从 Spring4.0 开始推荐构造注入
或者Setter方法
注入。
构造注入:
private final SysUserMapper userMapper;
public SysUserServiceImpl(SysUserMapper userMapper) {
this.userMapper = userMapper;
}
Setter方法`注入:
// 略
解决方法:
1.改成构造注入(方法略)
2.使用setter方法注入(方法略)
3.将@Autowired注解换成@Resource
4.改变@Autowired的检查级别
我用的是这个解决方法,因为我的代码里全是@Autowired注解,无论是使用构造注入还是setter方法注入,都非常的麻烦而且繁琐。
改成@Resource注解也比较麻烦。
不如一步到位,让@Autowired不报错,省的看起来恶心人。
- 1.
file--settings--Editor--Inspections
- 2.
Spring-Spring Core--code--Autowiring for Bean Class
- 3.修改Severity级别,或者直接取消检查(这个更加一步到位)