覆盖硬编码的spring属性文件

时间:2017-11-08 20:34:57

标签: java spring properties classpath

我有以下问题。我有一个带有弹簧应用程序的jar存档(带有xml配置的纯弹簧,没有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。我尝试将带有overriden属性的文件添加到类路径(具有相同的名称),并将一些属性作为jvm args传递,但它没有工作。如何在不修改原始java存档的情况下从类路径替换/覆盖此文件?

1 个答案:

答案 0 :(得分:0)

我会看一下PropertyOverrideConfigurer

  

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

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