Spring属性覆盖-无法使用属性占位符覆盖@PropertySource

时间:2020-07-21 18:36:54

标签: java spring spring-boot spring-mvc

我有一个基于Spring的库,其中包含一个@Configuration类,该类也带有@PropertySource注释,该类指向lib jar中包含的默认属性文件。在库中使用@Value批注引用了这些属性。 Spring Boot Web应用程序和较早的Spring 3.2 Web应用程序都需要使用该库。

Spring Boot Web应用程序使用典型的application.properties文件设置。没什么特别的。 SB应用程序通过@Import(MyLibConfig.class)导入了lib配置,一切都加载良好。 application.properties文件中的属性会覆盖lib中默认属性文件中的内容。

较早的Spring 3.2 Web应用程序具有XML配置,并使用以下方式导入lib配置

<context:annotation-config /> 
<beans:bean name="MyLibConfig" class="org.example.MyLibConfig" />

类似于Spring Boot应用程序,它也具有自己的属性文件,并通过<context:property-placeholder location="classpath:/resource/override.properties"/>

加载

不幸的是,使用了lib jar中默认属性文件中的值。

我了解到Spring Boot具有its own的外部属性加载顺序。这就解释了它为什么起作用。对于较旧的3.2 Web应用程序,从我read开始,最后使用的是@PropertySource。那么,如何使3.2 Web应用程序的行为像Spring Boot应用程序一样,以覆盖lib属性?

0 个答案:

没有答案