spring框架实现实例化和依赖注入的方式分别是什么
时间: 2023-12-27 16:31:08 浏览: 136
Spring框架通过两种方式实现实例化和依赖注入:构造函数注入和setter方法注入。
1. 构造函数注入:通过构造函数来传递依赖对象。在类的构造函数中声明需要注入的依赖对象参数,并在配置文件中配置bean的定义。当容器实例化该bean时,会根据配置文件中的定义,自动将依赖对象传递给构造函数。
示例代码:
```java
public class UserService {
private UserDao userDao;
public UserService(UserDao userDao) {
this.userDao = userDao;
}
// ...
}
```
在配置文件中定义bean:
```xml
<bean id="userDao" class="com.example.UserDaoImpl" />
<bean id="userService" class="com.example.UserService">
<constructor-arg ref="userDao" />
</bean>
```
2. setter方法注入:通过setter方法来设置依赖对象。在类中定义对应的setter方法,并在配置文件中配置bean的定义。当容器实例化该bean时,会调用相应的setter方法,将依赖对象设置进去。
示例代码:
```java
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
// ...
}
```
在配置文件中定义bean:
```xml
<bean id="userDao" class="com.example.UserDaoImpl" />
<bean id="userService" class="com.example.UserService">
<property name="userDao" ref="userDao" />
</bean>
```
这样,Spring框架会自动将配置文件中定义的依赖对象注入到UserService类中,完成实例化和依赖注入的过程。
阅读全文