我刚刚测试了它,它应该可以正常工作。
PropertiesPlaceholderConfigurer包含setPropertiesPersister方法,因此您可以使用自己的PropertiesPersister子类。默认的PropertiesPersister已经支持XML格式的属性。
只是为了向您展示完整的代码:
JUnit 4.4测试用例:
package org.nkl;import static org.junit.Assert.assertEquals;import static org.junit.Assert.assertNotNull;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@ContextConfiguration(locations = { "classpath:/org/nkl/test-config.xml" })@RunWith(SpringJUnit4ClassRunner.class)public class PropertyTest { @Autowired private Bean bean; @Test public void testPropertyPlaceholderConfigurer() { assertNotNull(bean); assertEquals("fred", bean.getName()); }}弹簧配置文件
test-config.xml
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:property-placeholder location="classpath:/org/nkl/properties.xml" /> <bean id="bean" > <property name="name" value="${org.nkl.name}" /> </bean></beans>XML属性文件
properties.xml-
有关用法的说明,请参见此处。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties> <entry key="org.nkl.name">fred</entry></properties>
最后是bean:
package org.nkl;public class Bean { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}希望这可以帮助…



