SpringBoot的配置文件application.yml及加載順序詳解
SpringBoot配置文件application.yml及加載順序
配置文件分類(lèi)
1. SpringBoot中4級(jí)配置文件
- 1級(jí)(工程路徑config目錄配置文件):file:config/application.yml [最高]
- 2級(jí)(工程路徑目錄配置文件):file:application.yml
- 3級(jí)(項(xiàng)目類(lèi)路徑config目錄配置文件):classpath:config/application.yml
- 4級(jí)(項(xiàng)目類(lèi)路徑目錄配置文件):classpath:application.yml [最低]
2. 作用:
- 1級(jí)與2級(jí)留做系統(tǒng)打包后設(shè)置通用屬性,1級(jí)常用于運(yùn)維經(jīng)理進(jìn)行線(xiàn)上整體項(xiàng)目部署方案調(diào)控,2級(jí)服務(wù)于運(yùn)維人員配置涉密線(xiàn)上環(huán)境
- 3級(jí)和4級(jí)用于系統(tǒng)開(kāi)發(fā)階段設(shè)置通用屬性,3級(jí)常用于項(xiàng)目經(jīng)理進(jìn)行整體項(xiàng)目屬性調(diào)控,4級(jí)服務(wù)于開(kāi)發(fā)人員本機(jī)開(kāi)發(fā)與測(cè)試
3. 注意:
多層級(jí)配置文件間的屬性采用疊加并覆蓋的形式作用于程序。
自定義配置文件
1. 配置文件可以修改名稱(chēng),通過(guò)啟動(dòng)參數(shù)設(shè)定
Program arguments:? ----spring.config.name=myapplication
2. 配置文件可以修改路徑,通過(guò)啟動(dòng)參數(shù)設(shè)定
3.微服務(wù)開(kāi)發(fā)中配置文件通過(guò)配置中心進(jìn)行設(shè)置
配置文件總結(jié)
1. SpringBoot在開(kāi)發(fā)和運(yùn)行環(huán)境均支持使用臨時(shí)參數(shù)修改工程配置
2. SpringBoot支持4級(jí)配置文件,應(yīng)用于開(kāi)發(fā)與線(xiàn)上環(huán)境進(jìn)行配置的靈活設(shè)置
3. SpringBoot支持使用自定義配置文件的形式修改配置文件存儲(chǔ)位置
4.基于微服務(wù)開(kāi)發(fā)時(shí)配置文件將使用配置中心進(jìn)行管理
Springboot中application.yml、application.properties和bootStrap.yml加載順序
SpringApplication位于項(xiàng)目根目錄
所以所有得代碼要和SpringApplication所在目錄平級(jí)或下一級(jí)
以jar包發(fā)布springboot項(xiàng)目時(shí)
默認(rèn)會(huì)先使用jar包跟目錄下的application.properties來(lái)作為項(xiàng)目配置文件。
如果在不同的目錄中存在多個(gè)配置文件,它的讀取順序是:
- 1、config/application.properties(項(xiàng)目根目錄中config目錄下)
- 2、config/application.yml
- 3、application.properties(項(xiàng)目根目錄下)
- 4、application.yml
- 5、resources/config/application.properties(項(xiàng)目resources目錄中config目錄下)
- 6、resources/config/application.yml
- 7、resources/application.properties(項(xiàng)目的resources目錄下)
- 8、resources/application.yml
注:
1、如果同一個(gè)目錄下,有application.yml也有application.properties,默認(rèn)先讀取application.properties。
2、如果同一個(gè)配置屬性,在多個(gè)配置文件都配置了,默認(rèn)使用第1個(gè)讀取到的,后面讀取的不覆蓋前面讀取到的。
3、創(chuàng)建SpringBoot項(xiàng)目時(shí),一般的配置文件放置在“項(xiàng)目的resources目錄下”?????
4、先后加載順序:若application 和bootstrap 在同一目錄下:bootstrap先加載 application后加載
若application.yml 和bootStrap.yml 在同目錄下
則bootStrap.yml 的加載順序要于application.yml,即bootStrap.yml 會(huì)優(yōu)先被加載。
原理:
bootstrap.yml 于應(yīng)程序上下的引導(dǎo)階段。
bootstrap.yml 由Spring ApplicationContext加載。
- bootstrap.yml 可以理解成系統(tǒng)級(jí)別的?些參數(shù)配置,這些參數(shù)?般是不會(huì)變動(dòng)的。
- application.yml 可以?來(lái)定義應(yīng)?級(jí)別的,如果搭配 spring-cloud-config 使用 application.yml 定義的文件可以實(shí)現(xiàn)動(dòng)態(tài)替換。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot配置文件的優(yōu)先級(jí)順序、加載順序、bootstrap.yml與application.yml區(qū)別及說(shuō)明
- SpringBoot調(diào)整ApplicationContextAware如何實(shí)現(xiàn)類(lèi)加載順序
- SpringBoot控制配置類(lèi)加載順序方式
- springboot中的靜態(tài)資源加載順序優(yōu)先級(jí)
- 如何正確控制springboot中bean的加載順序小結(jié)篇
- 詳解Spring Boot 配置加載順序及屬性加載順序
- Spring?Boot?配置文件之類(lèi)型、加載順序與最佳實(shí)踐記錄
相關(guān)文章
springboot的實(shí)體類(lèi)字段校驗(yàn)的分組校驗(yàn)具體實(shí)現(xiàn)步驟
分組校驗(yàn)允許在不同場(chǎng)景下對(duì)同一實(shí)體類(lèi)應(yīng)用不同的校驗(yàn)規(guī)則,通過(guò)定義分組接口、在實(shí)體類(lèi)和Controller中指定分組,以及全局異常處理,可以靈活控制校驗(yàn)規(guī)則,本文介紹springboot的實(shí)體類(lèi)字段校驗(yàn)的分組校驗(yàn),感興趣的朋友一起看看吧2025-03-03Java實(shí)現(xiàn)將Word轉(zhuǎn)換成Html的示例代碼
在業(yè)務(wù)中,常常會(huì)需要在瀏覽器中預(yù)覽Word文檔,或者需要將Word文檔轉(zhuǎn)成HTML文件保存,本文主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Word轉(zhuǎn)換成Html的相關(guān)方法,希望對(duì)大家有所幫助2024-02-02SpringBoot導(dǎo)入mail依賴(lài)報(bào)錯(cuò)問(wèn)題解決
這篇文章主要介紹了SpringBoot導(dǎo)入mail依賴(lài)報(bào)錯(cuò)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Java之SpringCloud Eurka注冊(cè)錯(cuò)誤解決方案
這篇文章主要介紹了Java之SpringCloud Eurka注冊(cè)錯(cuò)誤解決方案,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07SpringBoot項(xiàng)目調(diào)優(yōu)及垃圾回收器的比較詳解
這篇文章主要介紹了SpringBoot項(xiàng)目調(diào)優(yōu)及垃圾回收器的比較詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04通過(guò)jstack分析解決進(jìn)程死鎖問(wèn)題實(shí)例代碼
這篇文章主要介紹了通過(guò)jstack分析解決進(jìn)程死鎖問(wèn)題實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Java程序執(zhí)行過(guò)程及內(nèi)存機(jī)制詳解
本講將介紹Java代碼是如何一步步運(yùn)行起來(lái)的,還會(huì)介紹Java程序所占用的內(nèi)存是被如何管理的:堆、棧和方法區(qū)都各自負(fù)責(zé)存儲(chǔ)哪些內(nèi)容,感興趣的朋友跟隨小編一起看看吧2020-12-12