关于spring中<util:**/>的配置
原文http://lehsyh.iteye.com/blog/687752
参考: http://www.java2s.com/Code/Java/Spring/CreateListMapInContext.htm
探索<util/>命名空间
事情的发展总是一段曲折前进的过程。当Spring刚出现时,开发者可以使用<list/>、<map/>、<set/>等元素定义集合,然而这些集合不能够在不同的受管Bean间进行复用。尽管开发者可以采用抽象Bean机制实现复用,但实在不怎么优雅。与此同时,开发者借助ListFactoryBean、MapFactoryBean和SetFactoryBean等对象能够定义出可供复用的集合。然而,这也不是很友好的做法。再后来,<util/>命名空间被Spring 2.x引入,这才使得集合的定义变得简单。
首先在spring的配置文件中添加
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util <a href="http://www.springframework.org/schema/util/spring-util-2.0.xsd">http://www.springframework.org/schema/util/spring-util-2.0.xsd">
public static final String hwStatic = "hello static constant";
<util:constant id="hwConstant" static-field="test.HelloWorld.hwStatic"/>
<util:constant id="maxValue" static-field="java.lang.Integer.MAX_VALUE"/>
<bean id="property-path" path="helloWorld.hello"/> <bean id="helloWorld" value="hi"/> </bean>
<util:properties id="xxx" location="classpath:xxxxx.properties">
<util:list id="listUtil" list-name="code"><bean id="abstractCollectionBean" abstract="true"> <property name="map"> <map> <entry key="mapKey1" value="mapValue1"> <entry key="mapKey2" value="mapValue2"> </map> </property> </bean>
<bean id="CollectionBean" parent="abstractCollectionBean"> <property name="map"> <map merge="true" key-type="java.lang.String" value-type="java.lang.String"> <entry key="mapKey1" value="mapValue1Override"/> <entry> <key><value>mapKey2</value></key> <value>mapValue2</value> </entry> <entry key="testBean" value-ref="testBean"> </map> </property> </bean> <bean id="testBean" />
<util:map id="mapUtil" map-value="first"> <entry key="2" value="two"> <entry key="3" value="three"> </util:map>
<util:set id="setUtil" set-name="code"><bean id="propertyPlaceholderConfigurer" ref="locations"/> <property name="order" value="1"/> </bean> <util:list id="locations"> <value>userinfo.properties</value> </util:list>
<bean id="propertyPlaceholderConfigurer" p:locations-ref="locations" p:order="1" /> <util:list id="locations"> <value>userinfo.properties</value> </util:list>