使用Gradle在Spring Boot中通过环境变量设置spring.profiles.active

时间:2020-09-17 23:23:13

标签: java spring-boot gradle

我的公司具有使用环境变量APP_ENV指定Web服务应在其中运行的环境的标准方法,特别是“开发”和“生产”。每个环境都有一个单独的配置文件:application-dev.yml和application-prod.yml。

在春季启动中,我们可以使用SPRING_PROFILES_ACTIVE或等效方法来执行此操作,但是我真正想做的是从APP_ENV中获取VALUE,并将其用作配置文件。

我有一些代码

SpringApplication app = new SpringApplication(Application.class);
springApp.setAdditionalProfiles(System.getenv("APP_ENV"););
springApp.run(args);

关于如何做到这一点的任何提示?我越来越 在各种gradle任务中出现java.lang.IllegalStateException: Failed to load ApplicationContext错误,使这种解决方案变得脆弱。

1 个答案:

答案 0 :(得分:-1)

您可以使用System.getProperty,它将始终返回如下所示的字符串,

springApp.setAdditionalProfiles(System.getProperty("APP_ENV", "dev"));

在上面的代码片段中,我们使用System.getProperty(“ APP_ENV”)提取属性APP_ENV的值。我们还将利用默认值,因此,如果该属性在系统中不可用,则getProperty将返回dev。

相关问题