Spring-IoC-DI-基于xml的依赖注入-使用set方法进行注入(案例九:注入对象属性:内部bean)
案例九:注入对象属性:内部bean
内部bean:在某个bean标签的内部定义的bean对象,内部bean只能被某个对象的某个属性引用。
(1)创建两个类部门类和员工类
public class Department { private Integer id; private String deptName; public Department() { } public Department(Integer id, String deptName) { this.id = id; this.deptName = deptName; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getDeptName() { return deptName; } public void setDeptName(String deptName) { this.deptName = deptName; } @Override public String toString() { return "Department{" + "id=" + id + ", deptName='" + deptName + '\'' + '}'; } }
public class Employee { private String name; private String gender; private Department dept; public Employee() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Department getDept() { return dept; } public void setDept(Department dept) { this.dept = dept; } @Override public String toString() { return "Employee{" + "name='" + name + '\'' + ", gender='" + gender + '\'' + ", dept=" + dept + '}'; } }
(2)在spring配置文件中先配置对象创建,再配置属性注入
<bean id="employee2" class="com.orz.spring.bean.Employee"> <property name="name" value="刘大爷"/> <property name="gender" value="男"/> <property name="dept"> <bean class="com.orz.spring.bean.Department"> <property name="id" value="2"/> <property name="deptName" value="安全部"/> </bean> </property> </bean>
(3)测试
@Test public void test2() { ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean.xml"); Employee employee = applicationContext.getBean("employee2", Employee.class); System.out.println(employee); }
(4)结果
Employee{name='刘大爷', gender='男', dept=Department{id=2, deptName='安全部'}}