【发布时间】:2012-02-13 06:12:58
【问题描述】:
我正在尝试从环境变量加载属性文件,所以这是我尝试过的:
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:messages/application.properties</value>
<value>file:${My_ENV_VAR}/*.properties</value>
</list>
</property>
<property name="ignoreResourceNotFound" value="true" />
<property name="searchSystemEnvironment" value="true" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>
我有一个名为My_ENV_VAR=C:\Program Files\My Folder\props.properties 的新环境变量
但是在停止和启动应用程序时,变量的值没有设置,有什么想法吗?
更新:要求
我想从文件系统上的外部属性文件中读取 applicationContext.xml 中的休眠属性(url、用户名、密码),其路径存储在环境变量中。 p>
【问题讨论】:
-
在此处查看 Bozho 的答案:stackoverflow.com/questions/3965446/…
-
你怎么知道没有设置?此外,您应该传递文件/文件模式,例如
file:${My_ENV_VAR}/*.properties而不是目录。 -
抱歉我更新了帖子,我知道它没有设置,因为在构建之后我看到了 applicationContext 并且我可以看到值
<value>file:${My_ENV_VAR}</value>没有改变。 -
构建时不会被替换,spring会在运行时替换。如果您希望它在构建时被替换,请配置 maven 过滤或等效项。
-
请问如何配置 maven 来做到这一点?