91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

springboot默認的加載路徑有哪幾種

發布時間:2022-05-30 09:32:33 來源:億速云 閱讀:184 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“springboot默認的加載路徑有哪幾種”,內容詳細,步驟清晰,細節處理妥當,希望這篇“springboot默認的加載路徑有哪幾種”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、application.properties/.yml文件初識

前面說到沒有配置application.properties文件,現在我在main/resources文件夾下新建一個application.properties文件,并且寫上如下的配置

springboot默認的加載路徑有哪幾種

然后,啟動項目,

springboot默認的加載路徑有哪幾種

好了,通過上面的啟動結果截圖,看到服務在端口”9090“啟動了。那么如果在該目錄下在配置一個application.yml文件吶,

springboot默認的加載路徑有哪幾種

啟動結果如下,

springboot默認的加載路徑有哪幾種

可以看到依然是在端口”9090“啟動服務。為此得出這樣個結論:在相同文件夾下如果有application.properties和application.yml兩個文件,那么application.properties文件會覆蓋application.yml文件,生效的是application.properties文件。

什么是yml文件

yml是由YAML (YAML Aint Markup Language)編寫的文件格式,是一種很直觀的數據序列化方式。很簡單就是一種新的文件格式,和XML、prperties文件類似。

二、application.properties/.yml文件可以在其他路徑嗎

看到這個標題的小伙伴肯定會說,難道application.properties可以在其他路徑,沒錯,猜對了。application.properties/.yml我們是放在了main/resources文件夾下,在項目運行的時候該文件夾下的文件會被拷貝到classes文件夾下,所以該路徑又叫做classpath。

在springboot的源碼中搜索”application.properties“,搜到ConfigFileApplicationListener這樣一個類,在該類的注釋上有下面這段話,

* {@link EnvironmentPostProcessor} that configures the context environment by loading
 * properties from well known file locations. By default properties will be loaded from
 * 'application.properties' and/or 'application.yml' files in the following locations:
 * <ul>
 * <li>file:./config/</li>
 * <li>file:./config/{@literal *}/</li>
 * <li>file:./</li>
 * <li>classpath:config/</li>
 * <li>classpath:</li>
 * </ul>

大體意思是”EnvironmentPostProcessor通過從眾所周知的文件路徑加載properties來配置上下文環境。默認的properties來自application.properties/application.yml文件,這些文件來自以下路徑“,

file:./config/ 根文件夾(項目文件夾)下的config目錄

file:./config/{@literal *}/ 根文件文件夾(項目文件夾)下的config/*/目錄

file:./ 根文件文件夾(項目文件夾)下

classpath:config/ classpath下的config/

classpath: classpath下

好了,我們已經知道了application.properties/application.yml文件會從以上的幾個位置加載,且我們配置的main/resources其實就是上面的classpath:,那么上面的這些路徑是不是也有先后順序吶,順著ConfigFileApplicationListener這個類繼續往下看,看到了下面的這樣一個屬性,

// Note the order is from least to most specific (last one wins)
private static final String DEFAULT_SEARCH_LOCATIONS = "classpath:/,classpath:/config/,file:./,file:./config/*/,file:./config/";

可以看到這個DEFAULT_SEARCH_LOCATIONS 指定的就是上面的幾個值,且上面的注釋很有意思,但是我沒翻譯好,通過例子來驗證吧。已經知道了application.properties和application.yml的優先級,我們就用application.properties文件來驗證就好了,在resources/config(運行路徑:classpath:/config/)下有application.properties,

springboot默認的加載路徑有哪幾種

看下現在使用的是哪個端口,

springboot默認的加載路徑有哪幾種

使用的是9092,也就說resouces/config的優先級大于resources,即,classpath:/config/>classpath:/。下面再看下file:/

springboot默認的加載路徑有哪幾種

在項目的根路徑下新建了application.properties文件,起server.port為9093,下面看服務使用的哪個端口,

springboot默認的加載路徑有哪幾種

服務使用的是9093,優先級為:file:/>classpath:/config/>classpath:/。現在我在項目的路徑下增加config/my/路徑,且增加application.properties文件,

springboot默認的加載路徑有哪幾種

測試結果如下,

springboot默認的加載路徑有哪幾種

服務在端口”9094“啟動,說明優先級為:file:./config/*/>file:./>classpath:/>classpath:/config/,最后一個驗證的點為file:/config,這個我想無須驗證了肯定優先級是最高的,為此優先級順序由高到低為:file:./config/ > file:./config/*/ > file:./ > classpath:/ > classpath:/config/,通俗點說就是:項目根路徑下的config>項目根路徑下的config/*/>項目根路徑>classpath:/config>classpath:/

讀到這里,這篇“springboot默認的加載路徑有哪幾種”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

平乡县| 龙门县| 琼结县| 临朐县| 延寿县| 宿迁市| 安吉县| 莒南县| 江山市| 读书| 清水县| 吉首市| 许昌县| 准格尔旗| 本溪市| 来宾市| 千阳县| 余干县| 杂多县| 泰兴市| 兴宁市| 墨竹工卡县| 马龙县| 白沙| 丰台区| 屏南县| 黄石市| 南宁市| 祥云县| 锦屏县| 焦作市| 昭平县| 蓝田县| 襄樊市| 甘泉县| 洪洞县| 缙云县| 东明县| 凤山市| 岳池县| 德保县|