以上笔记来源:
尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)https://www.bilibili.com/video/BV1kR4y1b7Qc
11 依赖注入之注入List集合类型属性
11.1 创建实体类Emp以及Dept
Dept类中添加了遍历Emplist的方法
package com.atguigu.spring6.iocxml.ditest;//员工类
public class Emp {private Dept dept;private String ename;private Integer age;public Dept getDept() {return dept;}public void setDept(Dept dept) {this.dept = dept;}public String getEname() {return ename;}public void setEname(String ename) {this.ename = ename;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public void work() {System.out.println(ename + "工作到了" + age);dept.info();}
}
package com.atguigu.spring6.iocxml.ditest;import java.util.List;//部门类
public class Dept {private String dname;private List<Emp> empList;public List<Emp> getEmpList() {return empList;}public void setEmpList(List<Emp> empList) {this.empList = empList;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}public void info() {System.out.println("部门名称是:"+dname);for (Emp emp : empList) {System.out.println(emp.getEname());}}}
11.2 创建配置文件bean-dilist.xml
在引入list属性类型时,<property>标签的name属性为实体类变量的名称,在list标签中添加<value></value>或者<ref></ref>
<?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 id="empone" class="com.atguigu.spring6.iocxml.ditest.Emp"><property name="ename" value="haozihua"></property><property name="age" value="28"></property></bean><bean id="emptwo" class="com.atguigu.spring6.iocxml.ditest.Emp"><property name="ename" value="lucy"></property><property name="age" value="32"></property></bean><bean id="dept" class="com.atguigu.spring6.iocxml.ditest.Dept"><property name="dname" value="技术部"></property><property name="empList"><list><ref bean="empone"></ref><ref bean="emptwo"></ref></list></property></bean>
</beans>
11.3 创建测试类方法
在引入list属性类型时,<property>标签的name属性为实体类变量的名称,在list标签中添加<value></value>或者<ref></ref>
@Testpublic void testUser5() {ApplicationContext context = new ClassPathXmlApplicationContext("bean-dilist.xml");Dept dept = context.getBean("dept", Dept.class);System.out.println("3 根据ID和class获取bean" + dept);
// emp.work();dept.info();}
11.4 运行结果