一、什么是集合注入
通俗的来讲就是在beans.xml文件中,通过集合的方式来进行赋值,我们在Java基础中学过通过集合的方式来进行赋值
二、集合注入的几种方式
Spring提供了以下四种集合类的配置元素
1、list 该标签用来装配可重复的list值
2、set 该标签用来装配没有重复的set值
3、map 该标签可用来注入键和值可以为任何类型的键值对
4、props 该标签支持注入键和值都是字符串类型的键值对
三、简单的配置代码实现
1、Programmer类的创建
package com.model;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class Programmer {
private List<String> cars;
private Set<String> pats; //宠物
private Map<String,String> infos; //信息
private Properties mysqlInfos; //mysql数据库链接信息
private String[] numbers; //家庭成员
public List<String> getCars() {
return cars;
}
public void setCars(List<String> cars) {
this.cars = cars;
}
public Set<String> getPats() {
return pats;
}
public void setPats(Set<String> pats) {
this.pats = pats;
}
public Map<String, String> getInfos() {
return infos;
}
public void setInfos(Map<String, String> infos) {
this.infos = infos;
}
public Properties getMysqlInfos() {
return mysqlInfos;
}
public void setMysqlInfos(Properties mysqlInfos) {
this.mysqlInfos = mysqlInfos;
}
public String[] getNumbers() {
return numbers;
}
public void setNumbers(String[] numbers) {
this.numbers = numbers;
}
}
2、beans.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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--
集合注入
-->
<bean id="programmer" class="com.model.Programmer">
<property name="cars">
<!-- 1. list数据注入 //有序集合-->
<list>
<value>ofo</value>
<value>mobai</value>
<value>宝马</value>
</list>
</property>
<property name="pats">
<!-- 2. set数据注入 //无序集合-->
<set>
<value>小黑</value>
<value>小红</value>
<value>小白</value>
</set>
</property>
<property name="infos">
<!-- 3. map数据注入 -->
<map>
<entry key="name" value="cjx"></entry>
<entry key="age" value="23"></entry>
<entry key="id" value="20821111355"></entry>
</map>
</property>
<property name="mysqlInfos">
<!-- 4. properties数据注入 //实际也是set类型是无序的-->
<props>
<prop key="url">mysql:jdbc://localhost:3306/dbname</prop>
<prop key="user">root</prop>
<prop key="password">123456</prop>
</props>
</property>
<property name="numbers">
<!-- 5. 数组的数据注入 -->
<array>
<value>哥哥</value>
<value>弟弟</value>
<value>妹妹</value>
<value>姐姐</value>
</array>
</property>
</bean>
</beans>
3、创建Lesson测试
public class Lesson4 {
@Test
public void test() throws Exception{
/*
* bean的集合注入
* */
ApplicationContext context = new ClassPathXmlApplicationContext("beans4.xml");
Programmer programmer = (Programmer) context.getBean("programmer");
System.out.println("车:"+programmer.getCars());
System.out.println("宠物:"+programmer.getPats());
System.out.println("信息:"+programmer.getInfos());
System.out.println("数据库连接信息::"+programmer.getMysqlInfos());
System.out.println("家庭成员:");
//家庭成员是数组类型,需要遍历
for (String number: programmer.getNumbers()){
System.out.println(number);
}
}
}
4、测试运行结果