Loading

Spring set注入-级联属性赋值

举例说明:

有一个Student类,一个Clazz类。

Student

 public class Student {
    private String name;

    //  学生属于哪个班级
    private Clazz clazz;

    //  使用级联属性赋值,这里需要这个get方法。
    public Clazz getClazz() {
        return clazz;
    }

    public void setClazz(Clazz clazz) {
        this.clazz = clazz;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", clazz=" + clazz +
                '}';
    }

    public void setName(String name) {
        this.name = name;
    }
}

Clazz

  public class Clazz {
    private String name;

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

    public void setName(String name) {
        this.name = name;
    }
}

Spring配置文件

  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <!--使用级联属性赋值需要注意两点:
            1、配置的顺序不能颠倒,必须如下顺序;
            2、clazz的属性必须提供getter方法。
    -->
    <bean id="studentBean" class="per.sxhzs.spring6.bean.Student">
        <!--简答类型使用value-->
        <property name="name" value="sxh"/>
        <!--不是简单类型,使用ref-->
        <property name="clazz" ref="clazzBean"/>
        <!--级联属性赋值-->
        <property name="clazz.name" value="高三22班"/>
    </bean>

    <bean id="clazzBean" class="per.sxhzs.spring6.bean.Clazz"/>
</beans>

测试类

@Test
    public void testCascade() {

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("cascade.xml");
        Student studentBean = applicationContext.getBean("studentBean", Student.class);
        Clazz clazzBean = applicationContext.getBean("clazzBean", Clazz.class);
        System.out.println(studentBean);
        System.out.println(clazzBean);
    }

效果图如下

posted @ 2022-11-12 21:21  过情关  阅读(49)  评论(0)    收藏  举报