这个问题是在运行app的上下文中作为部署到tomcat的war。我不清楚如何在application.properties或application.yml中指定具有不同值的参数,具体取决于应用程序是在生产环境还是在dev中运行?如下所示
if env == dev then myparam1 = devvalue
if env == prod then myparam1 = prodvalue
请注意,我使用的是Gradle而不是Maven。
答案 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