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='安全部'}}

 

posted @ 2020-10-18 17:47  orz江小鱼  阅读(127)  评论(0编辑  收藏  举报