Spring-注入集合

本文内容纲要:Spring-注入集合

注入集合

你已经看到如何使用value属性来配置基本数据类型和在你的bean配置文件中使用标签的ref属性来配置对象引用。

现在如果想传递多个值,如Java Collection类型的List,Set,Map和Properties,应该怎么做呢?为了处理这种情况,Spring提供了四中类型的集合的配置元素,如下所示:

  1. 注入一列值,允许重复
  2. 有助于连线一组值,但不能重复
  3. 可以用来注入名称-值对的集合,其中名称和值可以是任何类型
  4. 可以用来注入名称-值对的集合,其中名称和值都是字符串类型

JavaCollection.java文件的内容:

package com.tuorialsponit;

import java.util.List;

import java.util.Set;

import java.util.Map;

import java.util.Properties;

public class JavaCollection {

private List addressList;

private Set addressSet;

private Map addressMap;

private Properties addressProp;

public List getAddressList() {

return addressList;

}

public void setAddressList(List addressList) {

this.addressList = addressList;

}

public Set getAddressSet() {

return addressSet;

}

public void setAddressSet(Set addressSet) {

this.addressSet = addressSet;

}

public Map getAddressMap() {

return addressMap;

}

public void setAddressMap(Map addressMap) {

this.addressMap = addressMap;

}

public Properties getAddressProp() {

return addressProp;

}

public void setAddressProp(Properties addressProp) {

this.addressProp = addressProp;

}

}

下面是bean.xml中的内容:

<bean id="javaCollection" class="com.tuorialsponit.JavaCollection">

<property name="addressList">

<list>

<value>INDIA</value>

<value>Pakistan</value>

<value>USA</value>

<value>USA</value>

</list>

</property>

<property name="addressSet">

<set>

<value>INDIA</value>

<value>Pakistan</value>

<value>USA</value>

<value>USA</value>

</set>

</property>

<!-- results in a setAddressMap(java.util.Map) call -->

<property name="addressMap">

<map>

<entry key="1" value="INDIA"/>

<entry key="2" value="Pakistan"/>

<entry key="3" value="USA"/>

<entry key="4" value="USA"/>

</map>

</property>

<property name="addressProp">

<props>

<prop key="one">INDIA</prop>

<prop key="two">Pakistan</prop>

<prop key="three">USA</prop>

<prop key="four">USA</prop>

</props>

</property>

</bean>

MainApp.java中的内容:

public class MainApp {

public static void main(String[] args){

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

JavaCollection jc = (JavaCollection) context.getBean("javaCollection");

System.out.println(jc.getAddressList());

System.out.println(jc.getAddressSet());

System.out.println(jc.getAddressMap());

System.out.println(jc.getAddressProp());

}

}

运行结果:

Image

注入Bean引用

下面的Bean定义将帮助你理解如何注入bean的引用作为集合元素。甚至你可以将引用和值混合在一起,如下所示:

<property name="addressList">

<list>

<ref bean="helloIndia"/>

<value>INDIA</value>

<value>Pakistan</value>

<value>USA</value>

<value>USA</value>

</list>

</property>

<bean id="helloIndia" class="com.tuorialsponit.HelloIndia" parent="beanTemplate">

<property name="message1" value="hello India"></property>

<property name="message3" value="Namaste India"></property>

</bean>

为了使用上面的bean定义,你需要定义setter方法,它们应该也是能够用这种方式处理引用。

注入null和空字符串的值

如果你需要传递一个空字符串作为值,那么可以像如下方式这样传递它:

<bean id="helloIndia" class="com.tuorialsponit.HelloIndia" parent="beanTemplate">

<property name="message1" value="hello India"></property>

<property name="message3" value=""></property>

</bean>

如果你需要传递一个NULL值,那么你可以传递它,如下所示:

<bean id="helloIndia" class="com.tuorialsponit.HelloIndia" parent="beanTemplate">

<property name="message1" value="hello India"></property>

<property name="message3"><null/></property>

</bean>

本文内容总结:Spring-注入集合

原文链接:https://www.cnblogs.com/fangpengchengbupter/p/7818776.html

以上是 Spring-注入集合 的全部内容, 来源链接: utcz.com/z/296005.html

回到顶部