我公司有一种标准方法,可以通过使用环境变量APP_ENV来指定Web服务应在其中运行的环境,特别是“开发”和“生产”。这些环境中的每一个都有一个单独的配置文件:application-dev.yml和application-prod.yml。
在 Spring 启动中,我们可以使用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
错误使该解决方案变得脆弱。
最佳答案
您可以使用System.getProperty,它将始终返回如下所示的字符串,
springApp.setAdditionalProfiles(System.getProperty("APP_ENV", "dev"));
在上面的代码片段中,我们使用System.getProperty(“APP_ENV”)提取属性APP_ENV的值。我们还将利用默认值,因此,如果该属性在系统中不可用,则getProperty将返回dev。
关于java - 使用Gradle在Spring Boot中从环境变量设置spring.profiles.active,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63947311/