0

我正在尝试在我的 SpringBoot 应用程序上激活一个,确切的一个配置文件。我曾经覆盖该configureProfiles方法,因此如果多个配置文件处于活动状态,则应用程序不会运行。如果没有配置文件处于活动状态,我添加了一个默认配置文件。我想要激活的配置文件必须使用SPRING_PROFILES_ACTIVE环境变量来定义。

SpringBoot 的最新版本(2.5.x)configureProfiles是空的,当调用时,使用定义的活动配置文件SPRING_PROFILES_ACTIVE甚至没有加载。

知道如何在 SpringBoot 上激活一个(不多也不少)配置文件?

4

2 回答 2

1

SPRING_PROFILES_ACTIVE环境变量将实际设置活动配置文件。

如果您想获得活动的配置文件,只需将其添加Environment到您的@SpringBootApplication班级并在设置了多个配置文件的情况下提出任何类型的Exception或关闭应用程序。

请参阅下面的简单实现。

import javax.annotation.PostConstruct;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;

@SpringBootApplication
public class SpringDemoApplication {

    private Environment environment;

    public static void main(String[] args) {
        SpringApplication.run(SpringDemoApplication.class, args);
    }

    public SpringDemoApplication(Environment environment) {
        this.environment = environment;
    }

    @PostConstruct
    private void post() {
        if (!this.isThereJustOneActiveProfile()) {
            throw new RuntimeException("You must set just one profile.");
        }
    }

    private boolean isThereJustOneActiveProfile() {
        return (this.environment.getActiveProfiles().length == 1);
    }
}
于 2021-07-27T17:36:03.950 回答
0

您是否尝试设置活动配置文件?

private ConfigurableEnvironment env;
...
env.setActiveProfiles(SPRING_PROFILES_ACTIVE);

有很多方法可以设置您的个人资料。

您可以查看:this Spring profiles tutorial

或者这个帖子

于 2021-07-27T13:46:38.323 回答