Spring深入浅出(六),依赖注入,注入集合(含注入 Bean 引用)
本文内容纲要:Spring深入浅出(六),依赖注入,注入集合(含注入 Bean 引用)
前面已经讲解如何使用 value 属性来配置基本数据类型和在 bean 配置文件中使用<property>
标签的 ref 属性来配置对象引用。现在如果想传递多个值,如 Java Collection 类型 List、Set、Map 和 Properties,应该怎么做?
Spring 提供了四种类型的集合的配置元素,如下所示:
标签 | 说明 |
---|---|
<list> | 用于注入 list 类型的值,允许重复 |
<set> | 用于注入 set 类型的值,不允许重复 |
<map> | 用于注入 key-value 的集合,其中 key-value 可以是任意类型 |
<props> | 用于注入 key-value 的集合,其中 key-value 都是字符串类型 |
一、创建CollectionTest类
package com.clzhang.spring.demo;import java.util.*;
public class CollectionTest {
String[] strings;
List addressList;
Set addressSet;
Map addressMap;
Properties addressProp;
// 存放数组
public String[] getStrings() {
System.out.println("Array Elements :" + strings);
return strings;
}
public void setStrings(String[] strings) {
this.strings = strings;
}
// 存放List
public void setAddressList(List addressList) {
this.addressList = addressList;
}
public List getAddressList() {
System.out.println("List Elements :" + addressList);
return addressList;
}
// 存放Set
public void setAddressSet(Set addressSet) {
this.addressSet = addressSet;
}
public Set getAddressSet() {
System.out.println("Set Elements :" + addressSet);
return addressSet;
}
// 存放Map
public void setAddressMap(Map addressMap) {
this.addressMap = addressMap;
}
public Map getAddressMap() {
System.out.println("Map Elements :" + addressMap);
return addressMap;
}
// 存放Prop
public void setAddressProp(Properties addressProp) {
this.addressProp = addressProp;
}
public Properties getAddressProp() {
System.out.println("Property Elements :" + addressProp);
return addressProp;
}
}
二、创建主程序
package com.clzhang.spring.demo;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
CollectionTest jc = (CollectionTest) context.getBean("collectionTest");
jc.getStrings();
jc.getAddressList();
jc.getAddressSet();
jc.getAddressMap();
jc.getAddressProp();
}
}
三、创建配置文件
<?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-3.0.xsd">
<!-- Definition -->
<bean id="address1" class="com.clzhang.spring.demo.Address1" />
<bean id="collectionTest"
class="com.clzhang.spring.demo.CollectionTest">
<property name="strings">
<list>
<value>印度</value>
<value>日本</value>
<value>中国</value>
<value>中国</value>
</list>
</property>
<property name="addressList">
<list>
<value>印度</value>
<value>日本</value>
<value>中国</value>
<value>中国</value>
<ref bean="address1" />
</list>
</property>
<property name="addressSet">
<set>
<value>印度</value>
<value>日本</value>
<value>中国</value>
<value>中国</value>
<ref bean="address1" />
</set>
</property>
<property name="addressMap">
<map>
<entry key="1" value="印度" />
<entry key="2" value="日本" />
<entry key="3" value="中国" />
<entry key="4" value="中国" />
<entry key="5" value-ref="address1" />
</map>
</property>
<property name="addressProp">
<props>
<prop key="one">印度</prop>
<prop key="two">日本</prop>
<prop key="three">中国</prop>
<prop key="four">中国</prop>
</props>
</property>
</bean>
</beans>
四、创建注入Bean
package com.clzhang.spring.demo;public class Address1 {
public String toString() {
return "地址一";
}
}
五、运行
Array Elements :[Ljava.lang.String;@45820e51
List Elements :[印度, 日本, 中国, 中国, 地址一]
Set Elements :[印度, 日本, 中国, 地址一]
Map Elements :{1=印度, 2=日本, 3=中国, 4=中国, 5=地址一}
Property Elements :{two=日本, one=印度, three=中国, four=中国}
本文参考:
https://www.w3cschool.cn/wkspring/kp5i1ico.html
http://c.biancheng.net/spring/inject-collection.html
本文内容总结:Spring深入浅出(六),依赖注入,注入集合(含注入 Bean 引用)
原文链接:https://www.cnblogs.com/nayitian/p/15001672.html
以上是 Spring深入浅出(六),依赖注入,注入集合(含注入 Bean 引用) 的全部内容, 来源链接: utcz.com/z/296022.html