STS tc服务器上未激活spring配置文件

STS tc服务器上未激活spring配置文件,spring,maven,spring-tool-suite,tcserver,spring-profiles,Spring,Maven,Spring Tool Suite,Tcserver,Spring Profiles,我有一个关于Spring简介的项目 在我的web.xml中,我有 <context-param> <param-name>spring.profiles.default</param-name> <param-value>dev</param-value> </context-param> 然后,我选择runas->runonserver选项将maven项目部署到tc服务器 但是,活动配置文件仍然是dev

我有一个关于Spring简介的项目

在我的web.xml中,我有

<context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>dev</param-value>
</context-param>
然后,我选择runas->runonserver选项将maven项目部署到tc服务器

但是,活动配置文件仍然是dev


在tc服务器上激活spring配置文件的正确方法是什么

  • 在web.xml中定义上下文参数–这打破了“一个包适用于所有环境”的说法。我不建议这样做
  • 定义系统属性-Dspring.profiles.active=您的活动配置文件
我相信定义系统属性是更好的方法。那么,如何为Tomcat定义系统属性呢?在互联网上,我可以找到很多建议,比如“modifycatalina.sh”,因为你找不到任何这样的配置文件。修改catalina.sh是一个肮脏的无法维护的解决方案。有更好的方法可以做到这一点

只需在Tomcat的bin目录中创建文件setenv.sh,内容如下:

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active="prod"

在运行catalina.sh start或run时,它将自动加载。

如果您使用STS及其附带的tc服务器运行应用程序,您可以将系统属性定义放入tc服务器的启动配置中。一旦启动了tc Server,就可以通过“运行配置…”修改lauch配置,为tc Server选择一个,转到VM参数并添加-Dspring.profiles.active=prod设置

由于这是一个运行时选项,因此在通过Maven(您尝试的干净安装方式)构建应用程序时没有任何效果

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active="prod"