雄猫+ Spring和环境变量

发布于 2024-12-11 21:47:54 字数 464 浏览 0 评论 0原文

在 Spring 文件中,我有:

   <bean id="propertyConfigurer" class="org.myapp.MyConfigurator">
        <property name="locations">
        <list>
                       <value>classpath:configuration-${env}.properties</value>
        </list>
    </property>
</bean>

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

谢谢

随机化

In a Spring file I have:

   <bean id="propertyConfigurer" class="org.myapp.MyConfigurator">
        <property name="locations">
        <list>
                       <value>classpath:configuration-${env}.properties</value>
        </list>
    </property>
</bean>

the ${env} variable is defined in maven's profile.
But when I run from eclipse the application in tomcat 6 (published) it doesn't look in maven. So how can I set the variable for Tomcat?

Thanks

Randomize

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

双手揣兜 2024-12-18 21:47:54

在 Eclipse 中添加系统变量:转到 Run -->运行配置-->雄猫
选择“参数”选项卡并添加到虚拟机参数 -Denv=blabla

Add system variable in Eclipse: Go to Run --> Run Configurations --> Tomcat
Select Arguments tab and add to VM arguments -Denv=blabla

北城半夏 2024-12-18 21:47:54

要在 tomcat context.xml 中定义可在 spring 中使用的变量,请将此行添加到 context.xml 中的正确上下文中。

<Parameter name="env" value="ABCDEFG"  override="false"/>

To define a variable in in the tomcat context.xml that can be used in spring add this line to the right context in context.xml.

<Parameter name="env" value="ABCDEFG"  override="false"/>
故事↓在人 2024-12-18 21:47:54

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

Tarlog solution can be solve your problem but only inside eclipse, if you remove your server definition from eclipse you lost the definition and you need to add it again each time you change your IDE or delete the server definition.

So better way create a shell or bat file(like runServer.sh/.bat) according to your environment and add this parameter to the JAVA_OPTS variable so this variable called when catalina.sh/.bat is running (startup.sh/.bat called catalina script inside it). You can use this approach at your local, test and prod environment.

Windows: runServer.bat

set JAVA_OPTS="-Dvariable=value"
tomcat/bin/startup.bat

Linux: runServer.sh

export JAVA_OPTS="-Dvariable=value"
tomcat/bin/startup.sh
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文