IOC 操作Bean管理-XML注入集合

2021-12-31 0 By admin

IOC 过程中向Bean 对象中注入集合数据存在4中情况:

  1. 注入数组类型属性
  2. 注入List 集合类型属性
  3. 注入Map 集合类型属性
  4. 注入Set 集合类型属性

一、基本类型的集合属性

1.1、创建演示类

定义数组、list、map、set 类型属性,生成对应set 方法。

public class Stu {
	//1 数组类型属性
	private String[] courses;
	//2 list 集合类型属性
	private List<String> list;
	//3 map 集合类型属性
	private Map<String,String> maps;
	//4 set 集合类型属性
	private Set<String> sets;
	
	public void setSets(Set<String> sets) {
		this.sets = 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;
	}
}

1.2、在spring 配置文件进行配置

<bean id="stu" class="com.atguigu.spring5.collectiontype.Stu">
	<!--数组类型属性注入-->
	<property name="courses">
		<array>
			<value>java 课程</value>
			<value>数据库课程</value>
		</array>
	</property>
	<!--list 类型属性注入-->
	<property name="list">
		<list>
			<value>张三</value>
			<value>小三</value>
		</list>
	</property>
	<!--map 类型属性注入-->
	<property name="maps">
		<map>
			<entry key="JAVA" value="java"></entry>
			<entry key="PHP" value="php"></entry>
		</map>
	</property>
	<!--set 类型属性注入-->
	<property name="sets">
		<set>
			<value>MySQL</value>
			<value>Redis</value>
		</set>
	</property>
</bean>

二、在集合里面设置对象类型值

<!--创建多个course 对象-->
<bean id="course1" class="com.atguigu.spring5.collectiontype.Course">
	<property name="cname" value="Spring5 框架"></property>
</bean>
<bean id="course2" class="com.atguigu.spring5.collectiontype.Course">
	<property name="cname" value="MyBatis 框架"></property>
</bean>
<!--注入list 集合类型,值是对象-->
<property name="courseList">
	<list>
		<ref bean="course1"></ref>
		<ref bean="course2"></ref>
	</list>
</property>

三、把集合注入部分提取出来

3.1、在spring 配置文件中引入名称空间util

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
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">

3.2、使用util 标签完成list 集合注入提取

<!--1 提取list 集合类型属性注入-->
<util:list id="bookList">
	<value>易筋经</value>
	<value>九阴真经</value>
	<value>九阳神功</value>
</util:list>
<!--2 提取list 集合类型属性注入使用-->
<bean id="book" class="com.atguigu.spring5.collectiontype.Book">
	<property name="list" ref="bookList"></property>
</bean>