Spring Boot动态识别生产和测试环境文件
首先创建以下4个spring boot配置文件
application.yml
bootstrap.yml // 默认公共文件 dev和prod可以重写配置
bootstrap-dev.yml //开发环境文件
bootstrap-prod.yml //生成环境
在启动类里新增加载配置文件代码
import cn.hutool.core.net.NetUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Spirng Boot启动类
*/
@SpringBootApplication
public class BlogApplication {
public static void main(String[] args) {
// 自动加载是开发环境还是生产环境
String environment = "--spring.profiles.active=";
if (!String.join("", args).contains(environment)) {
List<String> argList = new ArrayList<String>(Arrays.asList(args));
// 生成环境内网ip
String prodIntranetIp = "";
// ping生产服务器的内网IP,如果能ping通代表是生成环境
boolean ping = NetUtil.ping(prodIntranetIp);
if (ping == true) {
// 生成环境配置文件
environment = "--spring.profiles.active=prod";
} else {
// 测试环境配置文件
environment = "--spring.profiles.active=dev";
}
// 添加环境参数到集合中
argList.add(environment);
// list转数组
args = argList.toArray(args);
}
SpringApplication.run(BlogApplication.class, args);
}
}