1 在pom 文件中添加信息
1 在build 内添加如下配置
<resources>
<resource>
<!--这里是关键! 根据不同的环境,把对应文件夹里的配置文件打包-->
<directory>src/main/resources/${environment}</directory>
</resource>
</resources>
在profiles添加如下信息
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>development</id>
<properties>
<environment>development</environment>
</properties>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<environment>test</environment>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>production</id>
<properties>
<environment>production</environment>
</properties>
<activation>
<!-- 设置默认激活这个配置 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
1 通过activation 指定需要加载的配置文件
<activation>
<!-- 设置默认激活这个配置 -->
<activeByDefault>true</activeByDefault>
</activation>
2 根据右侧maven 选择所需加载的配置参数,这种比较方便
resouces 目录结构如下
2 定义 PropertiesUtil 加载配置文件
package util;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
/**
* Created by Administrator on 2017/10/12.
*/
public class PropertiesUtil {
private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class);
//private final Logger logger = LoggerFactory.getLogger(this.getClass());
private static Properties props;
//Tomcat运行时执行
//代码块执行顺序:静态代码块>普通代码块>构造代码块
//构造代码块每次都执行,但是静态代码块只执行一次
static {
String fileName = "/application.properties";
props = new Properties();
try {
props.load(new InputStreamReader(PropertiesUtil.class.getResourceAsStream(fileName),"UTF-8"));
} catch (IOException e) {
logger.error("配置文件读取异常",e);
}
}
//自定义俩个get方法,方便调用工具类读取properties文件的属性
public static String getProperty(String key){
String value= props.getProperty(key.trim());
if (StringUtils.isBlank(value)){
return null;
}
return value.trim();
}
public static String getProperty(String key,String defaultValue){
String value= props.getProperty(key.trim());
if (StringUtils.isBlank(value)){
value = defaultValue;
}
return value.trim();
}
public static void main(String[] args) {
System.out.println(PropertiesUtil.getProperty("redis.url"));
}
}
通过pom文件中配置的不同activation加载不同的环境对应的配置文件