我的公司具有使用环境变量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
错误,使这种解决方案变得脆弱。
答案 0 :(得分:-1)
您可以使用System.getProperty,它将始终返回如下所示的字符串,
springApp.setAdditionalProfiles(System.getProperty("APP_ENV", "dev"));
在上面的代码片段中,我们使用System.getProperty(“ APP_ENV”)提取属性APP_ENV的值。我们还将利用默认值,因此,如果该属性在系统中不可用,则getProperty将返回dev。