IOC操作Bean管理(基于XML注入集合属性)
1、注入数组类型属性
- 创建一个Student类,定义属性类型
/**
* @Description: 创建一个学生类
* @Author: lds
* @Date: 2020/12/12
*/
public class Student {
/**
* 1、数组类型属性(courses课程数组)
*/
private String[] courses;
/**
* 2、list集合类型属性
*/
private List<String> list;
/**
* 3、map集合类型属性
*/
private Map<String, String> maps;
/**
* 4、set集合类型属性
*/
private Set<String> sets;
public void setCourses(String[] courses) {
this.courses = courses;
}
public void setList(List<String> list) {
this.list = list;
}
public void setMaps(Map<String, String> maps) {
this.maps = maps;
}
public void setSets(Set<String> sets) {
this.sets = sets;
}
}
- xml配置(标签可以换成标签使用)
<!--集合类型属性注入-->
<bean id="student" class="com.lds.springdemo.collectionspackage.Student">
<!--数组类型属性注入-->
<property name="courses">
<array>
<value>java课程</value>
<value>英语课程</value>
</array>
</property>
</bean>
2、注入List集合类型属性
<!--集合类型属性注入-->
<bean id="student" class="com.lds.springdemo.collectionspackage.Student">
<!--list类型属性注入-->
<property name="list">
<list>
<value>list_001</value>
<value>list_002</value>
</list>
</property>
</bean>
3、注入Map集合类型属性
<!--集合类型属性注入-->
<bean id="student" class="com.lds.springdemo.collectionspackage.Student">
<!--map类型属性注入-->
<property name="maps">
<map>
<entry key="1" value="map_001"></entry>
<entry key="2" value="map_002"></entry>
</map>
</property>
</bean>
4、注入Set集合类型属性
<!--集合类型属性注入-->
<bean id="student" class="com.lds.springdemo.collectionspackage.Student">
<!--set类型属性注入-->
<property name="sets">
<set>
<value>set_001</value>
<value>set_002</value>
</set>
</property>
</bean>
5、在集合里面设置对象类型值
- 创建Student类
/**
* @Description: 创建一个学生类
* @Author: lds
* @Date: 2020/12/12
*/
public class Student {
/**
* 学生可学多门课程
*/
private List<Course> courseList;
public void setCourseList(List<Course> courseList) {
this.courseList = courseList;
}
@Override
public String toString() {
return "Student{" +
"courseList=" + courseList +
'}';
}
}
- 创建一个课程类
/**
* @Description: 课程类
* @Author: lds
* @Date: 2020/12/12
*/
public class Course {
/**
* 课程的名字
*/
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Course{" +
"name='" + name + '\'' +
'}';
}
}
- XML配置
<!--注入list集合类型,值是对象-->
<bean id="student" class="com.lds.springdemo.collectionspackage.Student">
<property name="courseList">
<list>
<ref bean="course1"></ref>
<ref bean="course2"></ref>
</list>
</property>
</bean>
<!--创建多个course对象-->
<bean id="course1" class="com.lds.springdemo.collectionspackage.Course">
<property name="name" value="JAVA"></property>
</bean>
<bean id="course2" class="com.lds.springdemo.collectionspackage.Course">
<property name="name" value="PHP"></property>
</bean>
6、把集合注入部分提取出来,做一个公用部分
1、在Spring配置文件中引入名称空间 util
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
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
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
</beans>
2、使用util标签完成list集合注入提取
- 创建一个图书类
/**
* @Description:图书类
* @Author: lds
* @Date: 2020/12/12
*/
public class Book {
private List<String> bookList;
public void setBookList(List<String> bookList) {
this.bookList = bookList;
}
}
- xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
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
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<!--提取list集合类型属性注入-->
<util:list id="bookList">
<!--类型是String直接写<value>标签
如果类型是对象引用那么用<ref>标签引入-->
<value>水浒传</value>
<value>三国演义</value>
</util:list>
<!--提取list集合类型属性注入使用-->
<bean id="book" class="com.lds.springdemo.collectionspackage.Book">
<property name="bookList" ref="bookList"></property>
</bean>
</beans>