【Spring框架】注入内部bean

例子:部门和员工(一对多的关系)
建立一个部门类Dept

public class Dept {

    //部门类
    private String dname;

    public void setDname(String dname) {
        this.dname = dname;
    }

    @Override
    public String toString() {
        return "Dept{" +
                "dname='" + dname + '\'' +
                '}';
    }

建立一个员工类:

public class Emp {

    //员工类
    private String ename;
    private String gender;

    //员工属于某一个部门,使用对象形式表示
    private Dept dept;

    public void setDept(Dept dept) {
        this.dept = dept;
    }

    public void setEname(String ename) {
        this.ename = ename;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    //测试
    public void add(){
        System.out.println("姓名:"+ename+"性别:"+gender+"所属部门:"+dept);
    }

配置文件:

<!--内部bean-->
    <bean id="emp" class="ysy1_spring5.bean.Emp">
        <!--先设置两个普通的属性-->
        <property name="ename" value="ysy"></property>
        <property name="gender" value="女"></property>
        <!--设置对象属性-->
        <property name="dept">
            <bean id="dept" class="ysy1_spring5.bean.Dept">
                <property name="dname" value="安保部"></property>
            </bean>
        </property>
    </bean>

或者使用级联赋值:
方法一:
注意:ref和下面的id要对应

   <!--内部bean-->
    <bean id="emp" class="ysy1_spring5.bean.Emp">
        <!--先设置两个普通的属性-->
        <property name="ename" value="ysy"></property>
        <property name="gender" value="女"></property>
        <!--设置对象属性-->
        <property name="dept" ref="dept"></property>

    </bean>
            <bean id="dept" class="ysy1_spring5.bean.Dept">
                <property name="dname" value="安保部"></property>
            </bean>

方法二:
注意:要生成dept的get方法

   <!--内部bean-->
    <bean id="emp" class="ysy1_spring5.bean.Emp">
        <!--先设置两个普通的属性-->
        <property name="ename" value="ysy"></property>
        <property name="gender" value="女"></property>
        <!--设置对象属性-->
        <property name="dept" ref="dept"></property>
        <property name="dept.name" value="财务部"></property>

    </bean>
            <bean id="dept" class="ysy1_spring5.bean.Dept">
                <property name="dname" value="安保部"></property>
            </bean>

测试类:

@Test
    public void testBean3(){
        //1.加载spring配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean3.xml");
        //2、获取配置创建的对象

        Emp emp = context.getBean("emp", Emp.class);
        emp.add();
    }

输出结果是:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知野小兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值