Tomcat + Spring和环境变量

6
在一个Spring文件中,我有如下内容:
   <bean id="propertyConfigurer" class="org.myapp.MyConfigurator">
        <property name="locations">
        <list>
                       <value>classpath:configuration-${env}.properties</value>
        </list>
    </property>
</bean>

${env}变量是在Maven的配置文件中定义的。但是当我在Tomcat 6(已发布)中从Eclipse运行应用程序时,它不会查找Maven。那么我该如何为Tomcat设置该变量呢?

谢谢。

Randomize


https://dev59.com/G2865IYBdhLWcg3wIrFg - Dave Newton
3个回答

6
在Eclipse中添加系统变量:转到运行 -> 运行配置 -> Tomcat 选择Arguments选项卡并将-Denv=blabla添加到VM参数中。

5
在tomcat的context.xml中定义一个变量,以便在spring中使用,请将以下行添加到context.xml的正确上下文中。
<Parameter name="env" value="ABCDEFG"  override="false"/>

覆盖(override): 如果您不希望在Web应用程序部署描述符中找到相同参数名称的<context-param>覆盖此处指定的值,请将其设置为false。默认情况下,允许覆盖。 - Matias Sebastiao

3
Tarlog解决方案可以解决您的问题,但仅限于eclipse内部。如果您从eclipse中删除服务器定义,则会丢失该定义,并且每次更改IDE或删除服务器定义时都需要重新添加它。
因此,更好的方法是根据您的环境创建一个shell或bat文件(例如runServer.sh/.bat),并将此参数添加到JAVA_OPTS变量中,以便在运行catalina.sh/.bat时调用该变量(startup.sh/.bat在其内部调用catalina脚本)。您可以在本地、测试和生产环境中使用此方法。
Windows:runServer.bat
set JAVA_OPTS="-Dvariable=value"
tomcat/bin/startup.bat

Linux: runServer.sh

export JAVA_OPTS="-Dvariable=value"
tomcat/bin/startup.sh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接