在运行时覆盖 `spring.cloud.config.profile`
Override `spring.cloud.config.profile` at runtime
我正在使用 Spring 云配置,我需要在 运行 时将我的 spring.cloud.config.profile
属性 覆盖为 blue
或 green
我有一个方法 - determineConfigProfile()
returns blue
或 green
但是如何做我告诉 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 云配置开始之前运行并覆盖配置文件。
我正在使用 Spring 云配置,我需要在 运行 时将我的 spring.cloud.config.profile
属性 覆盖为 blue
或 green
我有一个方法 - determineConfigProfile()
returns blue
或 green
但是如何做我告诉 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 云配置开始之前运行并覆盖配置文件。