bean的装配
时间: 2023-07-05 09:04:53 浏览: 36
在Spring框架中,Bean的装配指的是将一个或多个Bean实例注入到另一个Bean实例中,以便于实现依赖注入和控制反转。Spring提供了多种方式来进行Bean的装配,包括XML配置、注解方式和Java Config方式。
1. XML配置方式
在XML配置文件中,可以通过<bean>元素的属性来指定Bean的装配方式,包括构造函数注入和属性注入两种方式。
构造函数注入:
```xml
<bean id="userService" class="com.example.UserService">
<constructor-arg ref="userDao"/>
</bean>
<bean id="userDao" class="com.example.UserDao"/>
```
属性注入:
```xml
<bean id="userService" class="com.example.UserService">
<property name="userDao" ref="userDao"/>
</bean>
<bean id="userDao" class="com.example.UserDao"/>
```
2. 注解方式
在Bean类中,可以使用注解来指定Bean的装配方式,包括构造函数注入和属性注入两种方式。
构造函数注入:
```java
@Service
public class UserService {
private final UserDao userDao;
@Autowired
public UserService(UserDao userDao) {
this.userDao = userDao;
}
}
@Repository
public class UserDao {}
```
属性注入:
```java
@Service
public class UserService {
@Autowired
private UserDao userDao;
}
@Repository
public class UserDao {}
```
3. Java Config方式
在Java Config类中,可以使用@Bean注解来指定Bean的装配方式,包括构造函数注入和属性注入两种方式。
构造函数注入:
```java
@Configuration
public class AppConfig {
@Bean
public UserService userService(UserDao userDao) {
return new UserService(userDao);
}
@Bean
public UserDao userDao() {
return new UserDao();
}
}
```
属性注入:
```java
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserService();
}
@Bean
public UserDao userDao() {
return new UserDao();
}
@Autowired
public void setUserDao(UserDao userDao) {
userService.setUserDao(userDao);
}
}
```
以上是几种常见的Bean的装配方式,开发者可以根据自己的需求选择合适的方式进行Bean的装配。