用java 实现自动装配
时间: 2024-04-29 09:20:54 浏览: 25
Java中的自动装配是通过使用注解来实现的。在Spring框架中,有三种不同的自动装配方式:byName、byType和constructor。
1. byName自动装配
在这种情况下,Spring容器会自动装配与bean的名称相同的属性。例如,如果有一个名为“customer”的bean,则Spring容器会查找一个名为“customer”的属性,并将其与该bean关联。
```
public class Customer {
private Person person;
public void setPerson(Person person) {
this.person = person;
}
}
```
```
<bean id="customer" class="com.example.Customer">
<property name="person" ref="person"/>
</bean>
<bean id="person" class="com.example.Person"/>
```
在上面的示例中,Spring容器将自动将“person”bean注入到“customer”bean的“person”属性中。
2. byType自动装配
在这种情况下,Spring容器会自动装配与属性类型相同的bean。例如,在下面的示例中,Spring容器会查找一个类型为“Person”的bean,并将其与“customer”bean关联。
```
public class Customer {
private Person person;
public void setPerson(Person person) {
this.person = person;
}
}
```
```
<bean id="customer" class="com.example.Customer" autowire="byType"/>
<bean id="person" class="com.example.Person"/>
```
在上面的示例中,我们使用了“autowire”属性来指定自动装配方式为“byType”。
3. constructor自动装配
在这种情况下,Spring容器会自动装配构造函数参数。例如,在下面的示例中,Spring容器会自动将类型为“Person”的bean注入到“Customer”构造函数中。
```
public class Customer {
private Person person;
public Customer(Person person) {
this.person = person;
}
}
```
```
<bean id="customer" class="com.example.Customer" autowire="constructor"/>
<bean id="person" class="com.example.Person"/>
```
在上面的示例中,我们使用了“autowire”属性来指定自动装配方式为“constructor”。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)