溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot怎么查找配置文件路徑的順序和其優(yōu)先級別

發(fā)布時間:2022-08-29 11:17:02 來源:億速云 閱讀:150 作者:iii 欄目:開發(fā)技術

本篇內(nèi)容主要講解“springboot怎么查找配置文件路徑的順序和其優(yōu)先級別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot怎么查找配置文件路徑的順序和其優(yōu)先級別”吧!

    查找配置文件路徑的順序和其優(yōu)先級別

    一、springboot查找配置文件路徑的順序和其優(yōu)先級別

    在項目類,有四個地方系統(tǒng)會自動掃描:

    1.file:/config/

    2.file:/

    3.classPath:/config/

    4.classPath:/

    1)其文件生效優(yōu)先級別,從上到下,即如果在不同路徑有相同屬性,會優(yōu)先選擇上面的路徑屬性(1>2>3>4)

    2)路徑掃描順序和其優(yōu)先級別相反(4>3>2>1),后面的會覆蓋前面的,并且所有路徑都會掃描,形成互補。

    二、同路徑下

    application.properties(application.yml)、bootstrap.properties(bootstrap.yml)加載順序及優(yōu)先級別

    1.application和bootstrap比較(前綴比較)

    提示:bootstrap類型文件是在多服務項目時,引入了springcloud相關配置才會生效,springboot并不會自動掃描bootstrap文件,只會掃描application文件,所以兩者的比較只有在spingcloud多服務項目中才有意義。

    1)先后加載順序:若application 和bootstrap 在同一目錄下:bootstrap先加載 application后加載

    2)優(yōu)先級問題:Bootstrap 屬性有高優(yōu)先級,默認情況下,它們不會被本地配置覆蓋。(這個是網(wǎng)上和官方的說法,但經(jīng)過本人的測試,發(fā)現(xiàn)application 會覆蓋bootstrap,我的理解是不是所有的bootstrap屬性都比application優(yōu)先,只有涉及底層系統(tǒng)相關配置才會比較高 ,有不同看法的老哥歡迎探討)

    3)區(qū)別:bootstrap 和 application 都可以用來配置參數(shù)。

    bootstrap 用來程序引導時執(zhí)行,應用于更加早期配置信息讀取??梢岳斫獬上到y(tǒng)級別的一些參數(shù)配置,這些參數(shù)一般是不會變動的。一旦bootstrap被加載,則內(nèi)容不會被覆蓋。

    application.yml 可以用來定義應用級別的, 應用程序特有配置信息,可以用來配置后續(xù)各個模塊中需使用的公共參數(shù)等。

    4)bootstrap典型的應用場景(經(jīng)典三點)

    • 1.當使用 Spring Cloud Config Server 配置中心時,這時需要在 bootstrap.yml 指定 spring.applicatio配置文件中n.name 和 spring.cloud.config.server.git.uri,添加連接到配置中心的配置屬性來加載外部配置中心的配置信息

    • 2.一些固定的不能被覆蓋的屬性

    • 3.一些加密/解密的場景

    2. .properties和.yml比較(后綴比較)

    1)加載順序

    .yml先于.properties

    2)優(yōu)先級別

    .properties優(yōu)先于.yml,因為.properties后加載會覆蓋.yml

    3)區(qū)別

    • 1.yml擁有天然的樹狀結構,properties是鍵值對;

    • 2.在properties文件中是以”.”進行分割的, 在.yml中是用”:”進行分割;

    • 3.在.yml中縮進一定不能使用TAB,否則會報很奇怪的錯誤;;

    • 4.yml比.properties對中文對支持更友好。

    • 5.yml是跨語言的:可以在包括JAVA,go,python等大量的語言中使用,比如做云計算使用go和java的時候,可以通過配置中心使用同一份配置!

    • 6.在自定義配置文件時,只能使用properties,因為spring只有@PropertiesSource注解可以引入自定義注解,對yml沒有支持

    小結:在同級目錄下,優(yōu)先級別application>bootstrap,.properties>,yml,前綴大于后綴,文件路徑大于文件名稱

    springboot配置文件不生效的原因

    1、將打包方式改為jar 。

    <packaging>jar</packaging>

    2、可能是yml文件縮近格式不對,仔細檢查一下就行了。

    3、還有就是你的根本就不是boot項目,application.yml沒有葉子標志

    1.點開項目結構

    springboot怎么查找配置文件路徑的順序和其優(yōu)先級別

    2.打開模塊一次點擊

    springboot怎么查找配置文件路徑的順序和其優(yōu)先級別

    3.

    springboot怎么查找配置文件路徑的順序和其優(yōu)先級別

    4.重構項目

    springboot怎么查找配置文件路徑的順序和其優(yōu)先級別

    到此,相信大家對“springboot怎么查找配置文件路徑的順序和其優(yōu)先級別”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

    AI