【发布时间】:2015-04-17 18:18:56
【问题描述】:
我们已经将应用程序中的所有属性都外部化了,并通过设置环境变量来读取它,就像这样..
<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 中的以下位置。
/etc/profile.d/env_vars.sh
/etc/profile
/etc/bashrc
/tomcat/conf/setenv.sh(为此,java 代码 System.getenv 有效,但 xml 无法解析)
【问题讨论】:
-
属于用户“运行”tomcat的~/.bashrc和~/.bash_profile呢?
标签: java linux spring tomcat environment-variables