IOC操作Bean管理(XML自动装配)
1、什么是自动装配
(1)根据指定装配规则(属性名称或者属性类型),spring自动将匹配的属性值进行注入。
2、演示自动装配的过程
/**
* @Description: 员工类
* @Author: lds
* @Date: 2020/12/11
*/
public class Employee {
/**
* 员工名字
*/
private String name;
/**
* 员工性别
*/
private String gender;
/**
* 员工属于某一个部门,使用对象形式表示
*/
private Department department;
public Department getDepartment() {
return department;
}
public void setName(String name) {
this.name = name;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setDepartment(Department department) {
this.department = department;
}
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", department=" + department +
'}';
}
}
/**
* @Description:部门类
* @Author: lds
* @Date: 2020/12/11
*/
public class Department {
/**
* 部门名称
*/
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Department{" +
"name='" + name + '\'' +
'}';
}
}
- 根据属性名称进行装配
<bean id="employee" class="com.lds.springdemo.bean.Employee" autowire="byName">
<property name="department" ref="department"></property>
<property name="department1" ref="department"></property>
</bean>
<bean id="department" class="com.lds.springdemo.bean.Department"></bean>
<bean id="department1" class="com.lds.springdemo.bean.Department"></bean>
- 根据属性类型进行装配
需要注意的是如果定义两个bean,根据类型是找不到的
<bean id="employee" class="com.lds.springdemo.bean.Employee" autowire="byType">
<property name="department" ref="department"></property>
<!-- <property name="department1" ref="department"></property>-->
</bean>
<bean id="department" class="com.lds.springdemo.bean.Department"></bean>
<!--找不到这个bean-->
<!--<bean id="department1" class="com.lds.springdemo.bean.Department"></bean>-->