我将属性从我的Spring配置文件内移动到一个单独的属性文件。这包括在配置文件中与引用弹簧属性文件使用路径相对于配置文件
<bean class="org.springframework.beans.factory.config.PropertyPlaceHolderConfigurer">
<property name="location" value="file:properties/${CONFIG_MODE}/service.properties" />
</bean>
因为它的立场,属性文件的位置是相对于服务器进程的当前工作目录。
这就要求进程必须从一个特定的工作目录开始,甚至更糟糕的是允许(可以认为是远程的)它可能拾取完全不同的属性文件的可能性 - 例如,如果它是以工作目录设置为服务的较旧版本。
我想要使用相对于包含配置文件的目录的路径来引用属性文件。
看着FileSystemResource,似乎createRelative可能是我需要的,但我无法弄清楚如何在配置文件中使用它。
感谢,
史蒂夫
很好的解决方案 - 谢谢。唯一的问题(我承认这根本不是一个严重的问题)是,有时能够直接查看/编辑属性文件很有用 - 例如在紧急情况下,或者做一些快速测试。将它放在罐子里并不妨碍这一点,但会使它有点麻烦。 – stevec 2010-08-31 16:59:13
@stevec:它不必位于JAR文件中,它可以很容易地位于类路径中的文件系统目录中。 – skaffman 2010-08-31 17:01:59
当我使用'@Value(“$ {thing.inside.service.properties}”)'这个工作吗? – 2014-02-13 09:43:07