什么是设值注入?什么是构造注入?请编程加以说明。
时间: 2024-06-12 20:01:58 浏览: 130
设值注入和构造注入都是依赖注入的方式,是在面向对象编程中用于解耦的技术。
设值注入是通过setter方法来完成依赖注入,即在对象实例化后,通过调用对象的setter方法来传递依赖。例如,有一个Service类,需要依赖于一个Dao类,那么可以在Service类中定义一个Dao类型的成员变量,并提供一个setDao方法来传递依赖。在使用时,先创建Dao对象,再创建Service对象,并调用Service的setDao方法传入Dao对象。下面是一个简单的示例代码:
```
public class Dao {
public void save() {
System.out.println("save data");
}
}
public class Service {
private Dao dao;
public void setDao(Dao dao) {
this.dao = dao;
}
public void doSomething() {
dao.save();
}
}
public class Main {
public static void main(String[] args) {
Dao dao = new Dao();
Service service = new Service();
service.setDao(dao);
service.doSomething();
}
}
```
构造注入是通过构造函数来完成依赖注入,即在对象实例化时,通过构造函数将依赖传递进去。例如,有一个Service类,需要依赖于一个Dao类,那么可以在Service类中定义一个构造函数,接收Dao类型的参数,并保存到成员变量中。在使用时,先创建Dao对象,再创建Service对象,并将Dao对象传入Service的构造函数中。下面是一个简单的示例代码:
```
public class Dao {
public void save() {
System.out.println("save data");
}
}
public class Service {
private Dao dao;
public Service(Dao dao) {
this.dao = dao;
}
public void doSomething() {
dao.save();
}
}
public class Main {
public static void main(String[] args) {
Dao dao = new Dao();
Service service = new Service(dao);
service.doSomething();
}
}
```
阅读全文