setter注入 与 构造器注入 示例
时间: 2023-12-24 13:01:21 浏览: 80
Setter注入和构造器注入都是依赖注入的方式,用于将一个对象的依赖项注入到它当中,使得对象能够正常运行。它们各自有着不同的特点和应用场景。
构造器注入是指在创建一个对象的时候,通过构造函数将依赖项传递进去。这种方式下,依赖项是对象创建时必须的,因此它们是对象的一部分。构造器注入是一种强依赖的注入方式,它能够确保对象创建时依赖项已经准备就绪,从而保证对象的正常运行。
示例:假设有一个电脑对象,它有一个硬盘依赖项,通过构造器注入的方式可以这样实现:
```java
public class Computer {
private HardDrive hardDrive;
public Computer(HardDrive hardDrive) {
this.hardDrive = hardDrive;
}
}
```
Setter注入是指在对象创建好之后,通过setter方法将依赖项注入进去。这种方式下,依赖项是可选的,因为对象创建完毕后可以随时注入依赖项。Setter注入是一种松散的注入方式,它能够灵活地注入不同的依赖项,从而增强了对象的可配置性和可扩展性。
示例:继续以上面的电脑对象为例,我们可以通过setter注入的方式实现硬盘的注入:
```java
public class Computer {
private HardDrive hardDrive;
public void setHardDrive(HardDrive hardDrive) {
this.hardDrive = hardDrive;
}
}
```
总的来说,构造器注入适用于对象初始化时必需的依赖项,而setter注入适用于对象创建后可选的依赖项。在实际应用中,可以根据具体情况选择合适的注入方式来满足对象的需求。
阅读全文