我有以下问题。我有一个带有弹簧应用程序的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存档的情况下从类路径替换/覆盖此文件?
答案 0 :(得分:0)
我会看一下PropertyOverrideConfigurer。
属性资源配置器,它覆盖了一个中的bean属性值 应用上下文定义。它从属性中推送值 文件到bean定义。
这应该允许您在先前加载的集合之上“推送”自己的值。