Java面试题更新 2026-08-05

Spring 框架中一共提供几种依赖注入方式?

后端开发技术原理

考察说明

考查对 Spring 依赖注入方式的理解与区分能力。

回答思路

  1. 【回答框架 1】Spring 的依赖注入主要分为三类:构造器注入、Setter 方法注入和字段注入。构造器注入通过构造函数参数完成依赖装配,能保证依赖在对象创建后不可变,适用于强制依赖。
  2. 【回答框架 2】Setter 注入通过调用对象的 setter 方法设置依赖,允许在对象创建后修改依赖,适用于可选依赖或需要重新配置的场景。
  3. 【回答框架 3】字段注入直接在属性上使用 @Autowired 等注解,写法简洁但依赖关系隐藏,不利于单元测试和容器外实例化,推荐在构造器注入和 Setter 注入不可用时才使用。
  4. 【回答框架 4】现代 Spring 官方更推荐构造器注入,因为它能实现不可变对象、易于测试并明确表达依赖,Spring 文档中明确了这一偏好。
  5. 【回答框架 5】在实际项目中,可以组合使用不同注入方式,但应保持团队一致性,避免滥用字段注入带来的问题。
  6. 【关键点 1】Spring 有三种注入方式:构造器注入、Setter 注入、字段注入。
  7. 【关键点 2】构造器注入适合强制依赖,保证不可变性和测试便利性。
  8. 【关键点 3】字段注入便捷但有隐藏依赖风险,不推荐在正式代码中频繁使用。
  9. 【易错点 1】不要认为字段注入是唯一或最佳的注入方式,它会导致周期依赖和测试困难。
  10. 【易错点 2】忽略构造器注入的多参场景,容易导致构造函数过于庞大,需考虑使用 DTO 或工厂方法。
  11. 【易错点 3】不区分注入方式而混用,破坏代码一致性,增加维护成本。