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