我们通常在xml里面配置一些经常会变化的参数,达到简单配置的目的。有的时候我们需要在程序中获取到这些配置的属性,这个时候就要用到PropertyPlaceHolder相关的类了。
首先来个xml文件 test.xml
use=aaa
pass=bbb
然后写个配置类 MyPropertyHolder
public class MyPropertyHolder extends PropertyPlaceholderConfigurer{
private static Map<String, String> map=new HashMap<String, String>();
@Override
protected void processProperties(ConfigurableListableBeanFactory arg0, Properties arg1) throws BeansException {
super.processProperties(arg0, arg1);
Set<Map.Entry<Object, Object>> entrySet=arg1.entrySet();
for(Map.Entry<Object, Object> entry:entrySet){
map.put(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
}
}
public static String getProperty(String name){
return map.get(name);
}
}
然后在配置文件里面加上这样的一个bean
<bean id="myPropertyHolder" class="com.test.MyPropertyHolder">
<property name="locations">
<list>
<value>classpath:test.properties</value>
</list>
</property>
</bean>
然后我们在程序里面就可以通过MyPropertyHolder.getProperty(name)这样来获取我们在xml中配置的属性了。