我有多個(gè)要從類路徑加載的屬性文件。有一個(gè)默認(rèn)設(shè)置,/src/main/resources它是的一部分myapp.jar。我springcontext希望文件位于類路徑中。即<util:properties id="Job1Props" location="classpath:job1.properties"></util:properties><util:properties id="Job2Props" location="classpath:job2.properties"></util:properties>我還需要使用外部集覆蓋這些屬性的選項(xiàng)。我在中有一個(gè)外部配置文件夾cwd。按照spring boot doc config文件夾應(yīng)該在classpath上。但是從doc尚不清楚,它是否只會(huì)覆蓋applicaiton.propertiesfrom或配置中的所有屬性。當(dāng)我測試它時(shí),只會(huì)application.properties被拾取,其余屬性仍會(huì)從中拾取/src/main/resources。我嘗試將它們作為逗號(hào)分隔的列表提供,spring.config.location但默認(rèn)設(shè)置仍未被覆蓋。如何使多個(gè)外部配置文件覆蓋默認(rèn)文件?解決方法是,我目前使用app.config.location通過命令行提供的(特定于應(yīng)用程序的屬性)。即java -jar myapp.jar app.config.location=file:./config我改變了我的applicationcontext給<util:properties id="Job2Props" location="{app.config.location}/job2.properties"></util:properties>這就是我在加載應(yīng)用程序時(shí)如何在文件和類路徑之間進(jìn)行分隔的方法。編輯://psuedo codeif (StringUtils.isBlank(app.config.location)) { System.setProperty(APP_CONFIG_LOCATION, "classpath:");}我真的不希望使用上述變通方法,并且讓spring像在application.properties文件路徑上那樣覆蓋classpath上的所有外部配置文件。
Spring Boot和多個(gè)外部配置文件
慕標(biāo)5832272
2019-10-25 09:36:53