结论先行
- IDEA对
@Autowired
字段注入显式警告,但对@Resource
字段注入同样不推荐。 - 字段注入的共性缺陷:破坏不可变性、隐藏循环依赖、降低代码可维护性。
- 唯一推荐方案:使用构造器注入替代字段注入,确保代码健壮性。
文章持续更新,可以微信搜一搜「 半个脑袋儿 」第一时间阅读
一、IDEA对字段注入的警告差异
- @Autowired字段注入:IDEA直接提示警告“Field injection is not recommended”,因Spring官方明确反对该用法。
- @Resource字段注入:IDEA无直接警告,但仍需避免——其设计缺陷与
@Autowired
一致。
二、字段注入的三大核心问题
1. 破坏不可变性
- 字段注入:依赖未声明为
final
,可通过反射被篡改。 - 构造器注入:通过
final
字段强制依赖不可变,防止线程安全问题。 - 代码对比:
// 不推荐:字段注入(依赖可变)