在 Spring 框架中,依赖注入(Dependency Injection, DI)主要有 3+1 种实现方式。你提到的构造器注入、Setter 注入和接口注入是理论上的三种经典方式。 但在 Spring 的实际应用中,接口注入基本被废弃/极少用于业务代码,而字段注入(Field Injection)虽然你没有提到,却是平时开发中最常见的。 下面为你详细解析 Spring 中依赖注入的这几种方式及其优缺点: --- 1. 构造器注入 (Constructor Injection) —— 🏆 官方最推荐 通过类的构造函数来完成依赖关系的设定。Spring 团队自 Spring 4.x 起强烈推荐这种方式。 实现方式: 将依赖项声明为 属性,并通过构造方法传入。如果类只有一个构造方法,Spring 4.3 之后甚至可以省略 注解。 代码示例: (日常开发中,常配合 Lombok 的 注解来简化代码) 优点: 1. 保证不可变性: 可以将依赖属性声明为 ,防止被意外修改。 2. 保证完全初始化: 实例化对象时,必须传入所有参数,避免了出现 NullPointerException(...