spring 3.0 after
<util:list/>元素
借助<list/>元素,开发者能够定义java.util.List集合。下面摘录了list.xml中的配置信息。
- <bean id="abstractCollectionBean" abstract="true">
- <property name="list">
- <list>
- <value>list1</value>
- <value>list2</value>
- </list>
- </property>
- </bean>
- <bean id="collectionBean" class="test.CollectionBean"
- parent="abstractCollectionBean">
- <property name="list">
- <list merge="true" value-type="java.lang.String">
- <value>list1</value>
- <idref local="collectionBean"/>
- <null></null>
- </list>
- </property>
- </bean>
其中,value-type属性指定存入list的默认Java类型。
不幸的是,在某种程度上,<list/>元素只是一种内部Bean,同一<list/>元素不能够起到复用的作用。相比之下,借用ListFactoryBean对象,开发者能够构建出可供复用的List对象。下面展示了配置示例。此时,targetListClass属性用于指定List的具体类型,而sourceList属性用于指定List中的具体内容。
- <bean id="list" class="org.springframework.beans.
factory.config.ListFactoryBean" > - <property name="targetListClass" value="java.util.ArrayList"/>
- <property name="sourceList">
- <list>
- <value>first</value>
- <value>second</value>
- <value>three</value>
- <value>four</value>
- </list>
- </property>
- </bean>
为简化ListFactoryBean的使用,开发者可以启用<util:list/>元素,示例配置如下。
- <util:list id="listUtil" list-class="java.util.ArrayList">
- <value>first</value>
- <value>second</value>
- <value>three</value>
- <value>four</value>
- </util:list>