【问题标题】:Loading external properties file in spring?在春天加载外部属性文件?
【发布时间】:2014-08-07 10:16:58
【问题描述】:

我有以下弹簧配置。我正在使用 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 驱动器等路径中指定驱动器信息?我需要将 App 服务器和属性文件保存在同一个驱动器中吗?

【问题讨论】:

  • 如果它在没有驱动器号的情况下工作,那么您不必这样做。
  • 由于它工作正常,显然您不需要指定驱动器名称。 :)
  • 我需要将应用服务器和属性文件保存在同一个驱动器中吗?

标签: java spring


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 以这种方式编写 URL 是个坏主意。只需使用环境变量 your.prop.url 这样就可以传递任何 url,而不仅仅是它的片段。
    • 你能举个例子吗?
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 2011-08-27
      • 2013-01-28
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2016-06-18
      相关资源
      最近更新 更多