在spring中加载外部属性文件?

时间:2014-08-07 10:16:59

标签: java spring

我有弹簧配置以下。我使用的是Spring 3和Windows OS。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
    <list>
      <value>file:/extprops/conf/usercred.properties</value>
    </list>
  </property>
  <property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>

在上面的配置中,我正在尝试加载外部属性文件file:/extprops/conf/usercred.properties并且它正在运行。这里我没有指定属性文件所在的驱动器位置。我是否需要在CD驱动器等路径中指定驱动器信息?我是否需要将App服务器和属性文件保存在同一个驱动器中?

3 个答案:

答案 0 :(得分:3)

如果您没有指定驱动器,它将使用当前工作目录中的驱动器,该驱动器是您在启动进程期间使用的驱动器。因此,它可行,但不可靠 - 如果您运行该过程,例如通过不同驱动器的链接,然后它可能无法正常工作。所以,也要指定驱动器,如下所示:

file:///C:/extprops/conf/usercred.properties

更多信息:http://en.wikipedia.org/wiki/File_url

答案 1 :(得分:0)

此外,更好/标准的方法是在系统中创建一个环境变量,其值将包含propery文件的路径。

然后在配置文件中,您可以写为:

file:${your.prop.folder}/myproperties.properties.

这可以在您的属性文件位置发生更改时节省工作量。

答案 2 :(得分:0)

我认为属性文件应该在classpath上,并且它是正确的位置...因为它独立于路径,所以如果操作系统是Windows或Linux,它不会有任何问题。