01
问题背景
最近,在使用idea开发时业务系统时,发现idea上使用了@Autowired,发现竟然被警告了!提示:Field injection is not recommended,警告如下图:
what?Field injection is not recommended. (不推荐使用属性注入)
这不是常规操作吗?我们在开发的时候经常使用@Autowired将Bean注入到容器里,已经是非常正规的操作了,凭什么警告我呢?
02
原来如此
private final DependencyA dependencyA;
@Autowired
public Controller(DependencyA dependencyA){
this.dependencyA = dependencyA;
}
2)setter方法注入
private DependencyA dependencyA;
@Autowired
public void setDependencyA(DependencyA dependencyA){
this.dependencyA = dependencyA;
}
@Autowired
private DependencyA dependencyA;
03
扩展
04
总结
PS:看到idea出现波浪线,时常会让有强迫症的码农难受,如果你不想看到,可以在idea设置将其去除:选择File--Settings--Inspections,然后在右侧搜索 spring Core,Autowiring for bean class【去掉自动装配依赖对象的红线警告】 和 Field injection warning【去掉黄色背景】后面的√即可。
参考资料:
https://www.cnblogs.com/pjfmeng/p/7551340.html
https://www.jianshu.com/p/7f20176f2a40
https://www.jianshu.com/p/36db3e167958
https://blog.csdn.net/zhangjingao/article/details/81094529
https://www.4spaces.org/field-injection-is-not-recommended-solution/