【问题标题】:Override hardcoded spring properties file覆盖硬编码的弹簧属性文件
【发布时间】:2018-04-21 16:44:33
【问题描述】:

我有以下问题。我有一个 jar 存档,里面有一个 spring 应用程序(带有 xml 配置的纯 spring,没有 spring-boot)。有人决定将一些属性移动到外部文件。不幸的是,路径在 xml 上下文文件中是硬编码的,所以它看起来像这样:

<bean id="placeholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:hardcoded/path/props.properties</value>
        </list>
    </property>
</bean>

xml 上下文文件和属性文件都在存档中。该应用程序工作正常,但是,我需要更改(覆盖)硬编码文件中的一些属性。不幸的是,我无法修改或编译新的 jar。我尝试将具有覆盖属性的文件添加到类路径(具有相同的名称),并将一些属性作为 jvm args 传递,但它不起作用。如何在不修改原始 java 存档的情况下从类路径替换/覆盖此文件?

【问题讨论】:

    标签: java spring properties classpath


    【解决方案1】:

    我会看看PropertyOverrideConfigurer

    覆盖 bean 属性值的属性资源配置器 应用程序上下文定义。它从属性中推送值 文件到 bean 定义中。

    这应该允许您将自己的值“推送”到先前加载的集合之上。

    【讨论】:

      猜你喜欢
      • 2019-10-21
      • 2017-09-24
      • 1970-01-01
      • 2013-02-22
      • 2011-10-23
      • 2017-12-14
      • 2012-05-16
      • 1970-01-01
      相关资源
      最近更新 更多