gpt4 book ai didi

java - 在 Linux (Red Hat) 中为 Tomcat 中的 Java Web 应用程序设置全局环境变量

转载 作者:行者123 更新时间:2023-11-28 23:31:31 24 4
gpt4 key购买 nike

我们已经外部化了应用程序中的所有属性并通过设置环境变量来读取它,就像这样......

<bean id="propertyPlaceholderConfigurer" class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="configurationEncryptor" />
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="searchSystemEnvironment" value="true"/>
<property name="locations">
<list>
<value>file:${ENV_PROPS}/config/*.properties</value>
</list>
</property>
</bean>

以上代码适用于 Windows 和 Mac,即环境变量 ENV_PROPS 已正确解析。

但是它无法在 Linux (Red Hat) 中解析。我试过像这样设置环境变量..

# /opt/application/config/database.properties is a valid path     
export ENV_PROPS=/opt/application

在 Linux 中的以下位置。

  1. /etc/profile.d/env_vars.sh

  2. /etc/配置文件

  3. /etc/bashrc

  4. /tomcat/conf/setenv.sh(为此,java 代码 System.getenv 有效但 xml 无法解析)

最佳答案

事实证明,这是 applicationContext.xml 在 linux/tomcat 中的加载顺序问题,而不是环境变量问题。

我们的应用程序中有多个上下文文件,仅在主 applicationContext.xml(也在 web.xml 中定义)中应用上述 bean 没有帮助。

我们必须像这样显式地将上述 bean 作为资源导入到多个 xml 文件中。

关于java - 在 Linux (Red Hat) 中为 Tomcat 中的 Java Web 应用程序设置全局环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29706661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com