一个测试Bean:
package util; public class TestBean { private Integer co;public Integer getCo() { return co;}public void setCo(Integer co) { this.co = co;}}
一个测试属性文件config.properties
prop1=propValue1prop2=propValue2
配置文件:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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 http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<bean id="test" class="util.Test"> <property name="list" ref="list"> </property> <property name="map" ref="map"> </property> <property name="properties" ref="properties"> </property> <property name="array" ref="array"> </property> <property name="set" ref="set"> </property> <property name="constantValue" ref="constantValue"> </property>
</bean>
<util:list id="list" list-class="java.util.ArrayList"> <value>listValue1</value> <value>listValue2</value></util:list>
<util:map id="map"> <entry key="key1" value="mapValue1"></entry> <entry key="key12" value="mapValue2"></entry></util:map>
<util:set id="set" set-class="java.util.TreeSet"> <value>setValue1</value> <value>setValue2</value></util:set>
<util:properties id="properties" location="classpath:/util/config.properties"></util:properties>
<util:list id="array"> <value>arrayValue1</value> <value>arrayValue2</value></util:list><!-- 定义常量 --><util:constant id="constantValue" static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>
<!-- 为bean属性成员定义id,供其他bean引用,但自身属性不能使用,只能用在其他的bean上 -->
<util:property-path id="source" path="test.constantValue"/><bean id="testBean" class="util.TestBean"> <property name="co"> <ref bean="source"/> </property></bean>
</beans>
测试程序:
package util;
import java.util.Enumeration;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;
import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test { private List list; private Map map; private String[] array; private Set set; private Properties properties; private Integer constantValue;
public Integer getConstantValue() { return constantValue; } public void setConstantValue(Integer constantValue) { this.constantValue = constantValue; } public List getList() { return list; } public void setList(List list) { this.list = list; } public Map getMap() { return map; } public void setMap(Map map) { this.map = map; } public String[] getArray() { return array; } public void setArray(String[] array) { this.array = array; } public Set getSet() { return set; } public void setSet(Set set) { this.set = set; } public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("util/applicationContext.xml"); Test t=(Test)ctx.getBean("test"); t.printArray(t.getArray()); t.printList(t.getList()); t.printMap(t.getMap()); t.printSet(t.getSet()); t.printProperties(t.getProperties()); System.out.println(t.getConstantValue()); TestBean tb=(TestBean)ctx.getBean("testBean"); System.out.println("use util:property-path:"+tb.getCo());
} public void printList(List result){ System.out.println("list value:"); for (Iterator iterator = result.iterator(); iterator.hasNext();) { String element = (String) iterator.next(); System.out.println(element); } } public void printMap(Map result){ System.out.println("map value:"); for (Iterator iterator = result.keySet().iterator(); iterator.hasNext();) { String element = (String) iterator.next(); System.out.println(element); } } public void printSet(Set result){ System.out.println("set value:"); for (Iterator iterator = result.iterator(); iterator.hasNext();) { String element = (String) iterator.next(); System.out.println(element); } } public void printArray(String[] result){ System.out.println("array value:"); for (int i = 0; i < result.length; i++) { System.out.println(result[i]); } } public void printProperties(Properties result){
System.out.println("properties value:"); Enumeration enu2=result.propertyNames(); while(enu2.hasMoreElements()){ String key = (String)enu2.nextElement(); System.out.println(key); }
}
}
测试结果:
array value:arrayValue1arrayValue2list value:listValue1listValue2map value:key1key12set value:setValue1setValue2properties value:prop2prop18use util:property-path:8