根据配置文件的 PropertiesFactoryBean和 PropertyPlaceholderConfigurer可以选择不同的加载方式,我是使用System.setProperty(key, value),代码中可以直接用System.getProperty(key)取value的值
一、PropertyPlaceholderConfigurer
PropertyPlaceholderConfigurer是解决 properties 文件占位符问题,实现 PropertiesLoaderSupport 类
classpath:jdbc.properties classpath:redis.properties
package com.phil.common.prop;import java.util.Map.Entry;import java.util.Properties;import org.apache.log4j.Logger;import org.springframework.beans.factory.InitializingBean;import org.springframework.stereotype.Component;/** * 加载Properties文件 * @author phil * @date 2017年8月13日 * */@Componentpublic class InitializingProperties implements InitializingBean { private static final Logger logger = Logger.getLogger(InitializingProperties.class); /* * (non-Javadoc) * * @see * org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() throws Exception { Properties props = new Properties(); props.load(InitializingProperties.class.getClassLoader().getResourceAsStream("test1.properties")); props.load(InitializingProperties.class.getClassLoader().getResourceAsStream("test2.properties")); for (Entry
二、PropertiesFactoryBean
PropertiesFactoryBean 是PropertiesLoaderSupport 直接的实现类
classpath:portal_dev.properties
package com.phil.common.prop;import java.util.Map.Entry;import java.util.Properties;import org.apache.log4j.Logger;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;/** * 加载Properties文件 * @author phil * @date 2017年8月13日 * */@Componentpublic class InitializingProperties implements InitializingBean { private static final Logger logger = Logger.getLogger(InitializingProperties.class); @Autowired private Properties propertyConfigurer; /* * (non-Javadoc) * * @see * org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() throws Exception { for (Entry