1、通過spring配置properties檔案
<bean id="propertyConfigurer"class="com.tjsoft.base.util.CustomizedPropertyPlaceholderConfigurer"><property name="ignoreResourceNotFound" value="true" /><property name="locations"><list><value>/WEB-INF/config/jdbc.properties</value><value>/WEB-INF/config/mail.properties</value><value>/WEB-INF/config/system.properties</value></list></property></bean>
其中class為自己定義的類
2、自訂類CustomizedPropertyPlaceholderConfigurer
import java.util.HashMap;import java.util.Map;import java.util.Properties;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;/** * 自訂PropertyPlaceholderConfigurer返回properties內容 * * @author LHY 2012-02-24 * */public class CustomizedPropertyPlaceholderConfigurer extendsPropertyPlaceholderConfigurer {private static Map<String, Object> ctxPropertiesMap;@Overrideprotected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,Properties props) throws BeansException {super.processProperties(beanFactoryToProcess, props);ctxPropertiesMap = new HashMap<String, Object>();for (Object key : props.keySet()) {String keyStr = key.toString();String value = props.getProperty(keyStr);ctxPropertiesMap.put(keyStr, value);}}public static Object getContextProperty(String name) {return ctxPropertiesMap.get(name);}}
這樣就可以通過CustomizedPropertyPlaceholderConfigurer類來擷取properties屬性檔案中的內容了
3、如何擷取屬性檔案的內容
String host = (String) CustomizedPropertyPlaceholderConfigurer.getContextProperty("mail.smtp.host");