Spring Boot动态识别生产和测试环境文件

2022-10-11T17:46:00

首先创建以下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);
    }
}
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »