Springcloud Config支持本地配置文件的方法示例
背景:
Springcloud項目使用Springcloud-config作為分布式配置,配置參數(shù)都放在config里,不同的環(huán)境有不同的問題:
項目本地:
- boostrap.yml
遠(yuǎn)程配置:
- application.yml
- application-local.yml
- application-dev.yml
- application-test.yml
- application-prod.yml
其中application-local.yml是本地開發(fā)環(huán)境,由于開發(fā)時,經(jīng)常修改配置,就會頻繁去修改config。
所以想將application-local.yml放在項目本地,而不是在config里。
也就是最終變成:
項目本地:
- boostrap.yml
- application-local.yml
遠(yuǎn)程配置:
- application.yml
- application-dev.yml
- application-test.yml
- application-prod.yml
調(diào)整之后,發(fā)現(xiàn)項目啟動失敗,項目并不會去讀取本地的application-local.yml,需要我們來指定加載。
調(diào)整
原先的啟動代碼:
SpringApplication.run(Application.class, args);
改成:
new SpringApplicationBuilder(Application.class) .properties("spring.config.location=classpath:application-${spring.profiles.active}.yml,classpath:bootstrap.yml") .run(args);
一定要指定classpath:bootstrap.yml(如果還有其他本地文件,也是一樣),如果在沒有配置spring.config.location的情況下,項目會默認(rèn)加載classpath:bootstrap.yml,如果指定了就只會加載指定的配置文件。
測試用例
如果用了spring-test+junit,可以通過properties指定配置文件:
@SpringBootTest(properties = {"spring.config.location=classpath:tscm-service-oem-forecast-${spring.profiles.active}.yml,classpath:bootstrap.yml"})
也就是最終是:
@SpringBootTest(classes = {Application.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = {"spring.config.location=classpath:tscm-service-oem-forecast-${spring.profiles.active}.yml,classpath:bootstrap.yml"})
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spark操作之a(chǎn)ggregate、aggregateByKey詳解
這篇文章主要介紹了Spark操作之a(chǎn)ggregate、aggregateByKey詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06SpringBoot如何通過@Profile注解配置多環(huán)境
在Spring中,可以使用配置文件的方式來指定不同環(huán)境下所需要的配置信息,本文給大家介紹SpringBoot如何通過@Profile注解配置多環(huán)境,感興趣的朋友跟隨小編一起看看吧2023-06-06