下麵例子向您展示Spring如何注入值到集合類型(List, Set, Map, and Properties)。 支持4個主要的集合類型:
- List – <list/>
- Set – <set/>
- Map – <map/>
- Properties – <props/>
Spring beans
一個Customer對象,有四個集合屬性。
package com.xuhuhu.common; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; public class Customer { private List<Object> lists; private Set<Object> sets; private Map<Object, Object> maps; private Properties pros; //... }
在bean配置檔中不同的代碼片段用來聲明集合。
1. List示例
<property name="lists"> <list> <value>1</value> <ref bean="PersonBean" /> <bean class="com.xuhuhu.common.Person"> <property name="name" value="zaixianList" /> <property name="address" value="Hainan" /> <property name="age" value="28" /> </bean> </list> </property>
2. Set示例
<property name="sets"> <set> <value>1</value> <ref bean="PersonBean" /> <bean class="com.xuhuhu.common.Person"> <property name="name" value="zaixianSet" /> <property name="address" value="Hainan" /> <property name="age" value="28" /> </bean> </set> </property>
3. Map示例
<property name="maps"> <map> <entry key="Key 1" value="1" /> <entry key="Key 2" value-ref="PersonBean" /> <entry key="Key 3"> <bean class="com.xuhuhu.common.Person"> <property name="name" value="zaixianMap" /> <property name="address" value="Hainan" /> <property name="age" value="28" /> </bean> </entry> </map> </property>
4. Properties示例
<property name="pros"> <props> <prop key="admin">admin@xuhuhu.com</prop> <prop key="support">support@xuhuhu.com</prop> </props> </property>
Spring完整的 bean 配置檔。
<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-2.5.xsd"> <bean id="CustomerBean" class="com.xuhuhu.common.Customer"> <!-- java.util.List --> <property name="lists"> <list> <value>1</value> <ref bean="PersonBean" /> <bean class="com.xuhuhu.common.Person"> <property name="name" value="zaixianList" /> <property name="address" value="Hainan Haikou" /> <property name="age" value="28" /> </bean> </list> </property> <!-- java.util.Set --> <property name="sets"> <set> <value>1</value> <ref bean="PersonBean" /> <bean class="com.xuhuhu.common.Person"> <property name="name" value="zaixianSet" /> <property name="address" value="Hainan Haikou" /> <property name="age" value="28" /> </bean> </set> </property> <!-- java.util.Map --> <property name="maps"> <map> <entry key="Key 1" value="1" /> <entry key="Key 2" value-ref="PersonBean" /> <entry key="Key 3"> <bean class="com.xuhuhu.common.Person"> <property name="name" value="zaixianMap" /> <property name="address" value="Hainan Haikou" /> <property name="age" value="28" /> </bean> </entry> </map> </property> <!-- java.util.Properties --> <property name="pros"> <props> <prop key="admin">admin@xuhuhu.com</prop> <prop key="support">support@xuhuhu.com</prop> </props> </property> </bean> <bean id="PersonBean" class="com.xuhuhu.common.Person"> <property name="name" value="zaixian1" /> <property name="address" value="Hainan Haikou 1" /> <property name="age" value="28" /> </bean> </beans>
執行程式
package com.xuhuhu.common; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main( String[] args ) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Customer cust = (Customer)context.getBean("CustomerBean"); System.out.println(cust); } }
輸出
Customer [lists=[1, com.xuhuhu.common.Person@4e4ee70b, com.xuhuhu.common.Person@1e1867d2], sets=[1, com.xuhuhu.common.Person@4e4ee70b, com.xuhuhu.common.Person@52f644b4], maps={Key 1=1, Key 2=com.xuhuhu.common.Person@4e4ee70b, Key 3=com.xuhuhu.common.Person@54481b6d}, pros={admin=admin@xuhuhu.com, support=support@xuhuhu.com}]
上一篇:
Spring Bean作用域實例
下一篇:
Spring ListFactoryBean實例