级联赋值
首先创建一个包命名为bean
在bean包下新建一个Dept类和一个Emp类
Dept类
package com.atguigu.spring5.bean;
public class Dept {
private String Dname;
public void setDname(String dname) {
Dname = dname;
}
@Override
public String toString() {
return Dname;
}
}
dept类需要重写toString
方法来返回Dname
的值
Emp类
package com.atguigu.spring5.bean;
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) {
Ename = ename;
}
public void setGender(String gender) {
this.gender = gender;
}
public Dept getDept() {
return dept;
}
public void sout(){
System.out.println(Ename);
System.out.println(gender);
System.out.println(dept.toString());
}
}
Emp类有一个测试方法sout,用来测试输出注入后属性的值
配置xml文件
<?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">
<!--级联赋值-->
<bean name="emp" class="com.atguigu.spring5.bean.Emp">
<property name="ename" value="张三"></property>
<property name="gender" value="男"></property>
<property name="dept" ref="dept"></property>
<property name="dept.dname" value="财务部"></property>
</bean>
<bean name="dept" class="com.atguigu.spring5.bean.Dept"></bean>
</beans>
级联赋值的这种写法主要在于
先利用bean管理好需要注入的类:
<bean name="dept" class="com.atguigu.spring5.bean.Dept"></bean>
需要注入的类(Emp)里必须要有类(Dept)属性的get
方法
然后再利用name="类.属性"
这种形式给属性赋值:
<property name="dept" ref="dept"></property>
<property name="dept.dname" value="财务部"></property>
创建测试类
public class Test1 {
@Test
public void test1() {
ApplicationContext context=new ClassPathXmlApplicationContext("bean4.xml");
Emp emp=context.getBean("emp",Emp.class);
emp.sout();
}
}