依赖注入是将对象的创建和依赖关系交给 Spring 容器来管理,类只需要声明自己所需的类(接口)的对象,IOC会在运行时将所需对象注入到类中(动态代理)。而在传统编程中,当一个类需要使用另一个类的对象时,需要通过new关键字创建一个所需对象,十分耦合。
常见的依赖注入的方式有:构造方法注入、Setter方法注入、字段注入(注解注入)
- 构造方法注入:
@Service public class UserService { private final UserRepository userRepository; // 构造器注入 public UserService(UserRepository userRepository) { this.userRepository = userRepository; } }
- Setter方法注入:
public class PaymentService { private PaymentGateway gateway; public void setGateway(PaymentGateway gateway) { this.gateway = gateway; } }
- 字段注入:
@Service public class OrderService { @Autowired private OrderRepository orderRepository; }