spring在程式碼裡面獲取xml配置檔案的屬性
阿新 • • 發佈:2019-01-06
我們通常在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中配置的屬性了。