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

Override `spring.cloud.config.profile` at runtime

我正在使用 Spring 云配置,我需要在 运行 时将我的 spring.cloud.config.profile 属性 覆盖为 bluegreen

我有一个方法 - determineConfigProfile() returns bluegreen 但是如何做我告诉 Spring 启动到 运行在获取配置(即解析配置属性)之前使用此方法以及如何告诉 Spring Boot 覆盖系统 属性?

我在这里 https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_client.html 看到 "profile" = ${spring.profiles.active} (actually Environment.getActiveProfiles()) 但我不知道如何设置活动配置文件。

离开这个因为我觉得它有用,我所做的是在我的 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 云配置开始之前运行并覆盖配置文件。