在运行时覆盖`spring.cloud.config.profile`

时间:2018-09-04 15:22:17

标签: java spring spring-boot spring-cloud-config

我正在使用Spring云配置,我需要在运行时覆盖yield call(client.mutate, options) 属性,使其为spring.cloud.config.profileblue

我有一个方法-green返回determineConfigProfile()blue,但是我该如何做才能让Spring Boot在获取配置(即解析配置属性)之前运行此方法,并且如何告诉Spring Boot覆盖系统属性?

我在这里https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_client.html看到了green,但我看不到如何设置活动配置文件。

1 个答案:

答案 0 :(得分:0)

离开这是因为我认为这很有用,我所做的就是在我的public class Application extends SpringBootServletInitializer中:

我做了以下事情:

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        String profile = determineConfigProfile();
        System.setProperty("spring.cloud.config.profile", profile);
        return application.sources(Application.class);
    }

此操作在Spring云配置启动并覆盖配置文件之前运行。