如何在基于Gradle的Spring Boot 2.0.0应用程序中检测开发和生产环境?

时间:2018-04-15 06:06:30

标签: spring-boot gradle

这个问题是在运行app的上下文中作为部署到tomcat的war。我不清楚如何在application.properties或application.yml中指定具有不同值的参数,具体取决于应用程序是在生产环境还是在dev中运行?如下所示

if env == dev then myparam1 = devvalue

if env == prod then myparam1 = prodvalue

请注意,我使用的是Gradle而不是Maven。

1 个答案:

答案 0 :(得分:1)

正如评论中所述,您可以将Spring配置文件用于不同的环境,并为这些配置文件提供单独的配置文件。

关于制作:

  • 使用生产设置添加文件application-prod.yml
  • 使用选项--spring.profiles.active=prod或环境变量SPRING_PROFILES_ACTIVE=prod启动应用程序。

在开发环境中:

  • 使用开发设置添加文件application-dev.yml
  • 使用选项--spring.profiles.active=dev或环境变量SPRING_PROFILES_ACTIVE=dev启动应用程序。

请注意,您可以保留一些适用于application.yml中所有环境的常用设置,并仅覆盖环境配置文件中的某些特定键。

编辑:

为了在Tomcat servlet上下文中为您的应用程序激活某个Spring配置文件,您可以向spring.profiles.active元素添加名为<Context>的上下文参数。请参阅:https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Context_Parameters