在spring加载外部属性文件



我有下面的弹簧配置。我使用的是spring 3和windows操作系统。

<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驱动器的路径中指定驱动器信息?我需要保持应用程序服务器和属性文件在同一驱动器?

如果您没有指定驱动器,它将使用您在启动进程期间使用的当前工作目录中的驱动器。所以,它工作,但不可靠-如果你运行的过程,例如通过链接从不同的驱动器,那么它可能不工作。因此,也要指定驱动器,像这样:

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

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

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

那么在配置文件中,你可以这样写:

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

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