引入依赖包spring-beans
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
sping的配置文件中配置
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>
file:#{(com.snp.pms.utils.property.EnvHandler).getEnv('db','jd-jdbc.properties'))}
</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
加载环境变量工具类
/**
* 环境变量
*/
public static final String ENV = "PMS_ENV";
/**
*
* <p>
* 根据指定的目录及文件在配置好的环境变量下查询配置文件
*
* @param parentDirName
* 父级目录
* @param properties
* 配置文件名称
* @return
* @throws Exception
*/
public static String getEnv(String parentDirName, String properties)
throws Exception {
StringBuilder path = new StringBuilder();
String env = System.getenv(ENV);
if (env != null && !"".equals(env)) {
path.append(env).append(File.separator).append(parentDirName)
.append(File.separator).append(properties);
}
return path.toString();
}
/**
*
* <p>
* 加载指定目录所有文件
*
* @param parentDirName
* @return
* @throws Exception
*/
public static String getEnv(String parentDirName) throws Exception {
StringBuilder path = new StringBuilder();
String env = System.getenv(ENV);
if (env != null && !"".equals(env)) {
path.append(env).append(File.separator).append(parentDirName)
.append(File.separator).append("*.properties");
}
return path.toString();
}
/**
*
* <p>
* 获取配置文件所在的父级目录路径
*
* @param parentDirName
* @return
*/
public static String getEnvFilePathOnly(String parentDirName) {
StringBuilder path = new StringBuilder();
String env = System.getenv(ENV);
if (env != null && !"".equals(env)) {
path.append(env).append(File.separator).append(parentDirName)
.append(File.separator);
}
return path.toString();
}