1. 程式人生 > >spring在程式碼裡面獲取xml配置檔案的屬性

spring在程式碼裡面獲取xml配置檔案的屬性

    我們通常在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中配置的屬性了。