【问题标题】:Overriding properties in Spring 3.1 with a local properties file使用本地属性文件覆盖 Spring 3.1 中的属性
【发布时间】:2012-07-23 15:02:24
【问题描述】:

我正在尝试使用我正在部署的机器上的本地属性文件覆盖我的 war 文件中找到的默认值。

<context:property-placeholder
  location="classpath*:*.properties, file:/var/myfolder/local.properties"
  ignore-resource-not-found="true"
  ignore-unresolvable="true" />

我已经看到,这可以通过提供一个文件作为第二个位置(逗号分隔)来实现。不幸的是,它似乎没有覆盖属性。

我尝试过使用属性定义 bean 和设置位置,但这也不起作用。

【问题讨论】:

    标签: spring deployment properties


    【解决方案1】:

    发现问题。出于某种原因,系统中有 2 个应用程序上下文。我需要调查这是否有合理的原因。只要我将属性文件添加到其他应用程序上下文,它就可以工作了。

    感谢您的帮助!

    【讨论】:

      【解决方案2】:

      一种方法是将它们分成两部分并使用顺序

      <context:property-placeholder
        location="classpath*:*.properties"
        ignore-resource-not-found="true"
        ignore-unresolvable="true"
        order ="0" />
      
      <context:property-placeholder
        location="file:/var/myfolder/local.properties"
        ignore-resource-not-found="true"
        ignore-unresolvable="true"
        order="-1"/>
      

      最低顺序优先

      【讨论】:

      • 谢谢 Manoj,我试了一下,但不幸的是,由于某种原因它对我不起作用。我不明白为什么。
      • 将此标记为答案(尽管我上面的代码也可以)。问题在于有 2 个应用程序上下文
      猜你喜欢
      • 2022-01-13
      • 2012-09-05
      • 2017-10-03
      • 2013-09-29
      • 2016-08-07
      • 2014-01-27
      • 2016-05-15
      • 1970-01-01
      • 2019-03-20
      相关资源
      最近更新 更多