SpringBoot配置文件加載順序


spring配置文件加載順序

1.application.properties加載

Spring Boot啟動會掃描以下位置的application.properties或者application.yml文件作為Spring Boot的默認配置文件

bootstrap.yml(bootstrap.properties)與application.yml(application.properties)執行順序

bootstrap優先級比application更高

application:配置文件這個容易理解,主要用於SpringBoot項目的自動化配置。

bootstrap:配置文件有以下幾個應用場景 :

1. 使用SpringCloud Config配置中心時,這時需要在bootstrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;
2. 一些固定的不能被覆蓋的屬性;
3. 一些加密/解密的場景。

2.配置文件加載位置

1. file:/config/
2. file:/
3. classpath:/config/
4. classpath:/

springboot會加載所有的配置文件,並按優先級從上到下,將低優先級的配置內容覆蓋 -- 高低級可以形成互補


3.外部配置文件

  1. 開發者工具 Devtools 全局配置參數;

  2. 單元測試上的 [@TestPropertySource](mailto:@TestPropertySource)` 注解指定的參數;

  3. 單元測試上的 [@SpringBootTest](mailto:@SpringBootTest)` 注解指定的參數;


  4. 命令行指定的參數,如 java -jar springboot.jar --name="xxx"

  5. 命令行中的 SPRING_APPLICATION_JSONJSON 指定參數, 如 java -Dspring.application.json='{"name":"xxx"}' -jar springboot.jar

  6. ServletConfig初始化參數;

  7. ServletContext初始化參數;

  8. JNDI參數(如 java:comp/env/spring.application.json);

  9. Java系統參數(來源:System.getProperties());

  10. 操作系統環境變量參數;

  11. RandomValuePropertySource 隨機數,僅匹配:ramdom.*

  12. JAR包外面的配置文件參數(application-{profile}.properties(YAML)

  13. JAR包里面的配置文件參數(application-{profile}.properties(YAML)

  14. JAR包外面的配置文件參數(application.properties(YAML)

  15. JAR包里面的配置文件參數(application.properties(YAML)

  16. @Configuration (mailto:@Configuration)配置文件上 @PropertySource(mailto:@PropertySource) 注解加載的參數;

  17. 默認參數(通過 SpringApplication.setDefaultProperties 指定);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM