最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot默認的5種加載路徑詳解

 更新時間:2022年05月29日 08:10:46   作者:北漂程序員  
這篇文章主要給大家介紹了關(guān)于springboot默認的5種加載路徑,文中通過示例代碼介紹的非常詳細,對大家學習或者使用springboot具有一定的參考學習價值,需要的朋友可以參考下

前言

上次分享了如何一步一步搭建一個springboot的項目,詳細參見《5分鐘快速搭建一個springboot的項目》,最終的結(jié)果是在”8080“端口搭建起了服務,并成功訪問。不知道有小伙伴是否有疑惑,springboot應該有配置文件的,一般的配置文件都是application.properties或者application.yml,的確是這樣的。但是我確實沒有這些配置文件,服務正常在”8080“端口啟動,這是因為在springboot內(nèi)部有一套默認的機制。今天不聊這些默認的機制,聊一聊application.properties/application.yml文件。

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

前面說到?jīng)]有配置application.properties文件,現(xiàn)在我在main/resources文件夾下新建一個application.properties文件,并且寫上如下的配置

然后,啟動項目,

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

啟動結(jié)果如下,

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

什么是yml文件

yml是由YAML (YAML Aint Markup Language)編寫的文件格式,是一種很直觀的數(shù)據(jù)序列化方式。很簡單就是一種新的文件格式,和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來配置上下文環(huán)境。默認的properties來自application.properties/application.yml文件,這些文件來自以下路徑“,

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

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

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

classpath:config/ classpath下的config/

classpath: classpath下

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

// 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 指定的就是上面的幾個值,且上面的注釋很有意思,但是我沒翻譯好,通過例子來驗證吧。已經(jīng)知道了application.properties和application.yml的優(yōu)先級,我們就用application.properties文件來驗證就好了,在resources/config(運行路徑:classpath:/config/)下有application.properties,

看下現(xiàn)在使用的是哪個端口,

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

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

服務使用的是9093,優(yōu)先級為:file:/>classpath:/config/>classpath:/?,F(xiàn)在我在項目的路徑下增加config/my/路徑,且增加application.properties文件,

測試結(jié)果如下,

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

三、總結(jié)

本文主要分析了springboot的默認配置文件application.properties和application.yml的優(yōu)先級,以及springboot默認的加載路徑及每個路徑的優(yōu)先級;

1、同級下,application.properties文件優(yōu)先級大于application.yml,前者會覆蓋后者;

2、springboot的默認加載路徑有5個,分別是classpath:/、classpath:/config/、項目根路徑、項目根路徑/config/*/、項目根路徑/config/,會從這5個路徑下加載application.properties或application.yml;

3、5個默認的加載路徑的優(yōu)先級為:項目根路徑下的config > 項目根路徑下的config/*/ > 項目根路徑 > classpath:/config > classpath:/,前者會覆蓋后者

不知道小伙伴是否有這樣的疑惑,我們只能使用默認的配置文件嗎?只能使用默認的加載路徑嗎?當然springboot不會這樣做,后面繼續(xù)揭曉,敬請期待。

到此這篇關(guān)于springboot默認的5種加載路徑的文章就介紹到這了,更多相關(guān)springboot默認加載路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的main方法調(diào)用非靜態(tài)方法處理

    Java中的main方法調(diào)用非靜態(tài)方法處理

    這篇文章主要介紹了Java中的main方法調(diào)用非靜態(tài)方法處理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Spring Cloud Gateway調(diào)用Feign異步問題記錄

    Spring Cloud Gateway調(diào)用Feign異步問題記錄

    這篇文章主要介紹了Spring Cloud Gateway調(diào)用Feign異步問題記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • WebService教程詳解(一)

    WebService教程詳解(一)

    WebService,顧名思義就是基于Web的服務。它使用Web(HTTP)方式,接收和響應外部系統(tǒng)的某種請求,接下來通過本文給大家介紹WebService教程詳解(一),對webservice教程感興趣的朋友一起學習吧
    2016-03-03
  • 使用Java實現(xiàn)Redis限流的方法

    使用Java實現(xiàn)Redis限流的方法

    限流的作用是防止某個段時間段內(nèi)的請求數(shù)過多,造成模塊因高并發(fā)而不可用。這篇文章給大家介紹使用Java實現(xiàn)Redis限流的相關(guān)知識,一起看看吧
    2021-09-09
  • 一篇文章超詳細的介紹Java繼承

    一篇文章超詳細的介紹Java繼承

    Java中的繼承是一種機制,表示為一個對象獲取父對象的所有屬性和行為,下面這篇文章主要給大家介紹了關(guān)于Java繼承的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • Java?Thread.currentThread().getName()?和?this.getName()區(qū)別詳解

    Java?Thread.currentThread().getName()?和?this.getName()區(qū)別詳

    本文主要介紹了Thread.currentThread().getName()?和?this.getName()區(qū)別詳解,TestThread?testThread?=?new?TestThread();
    2022-02-02
  • Springboot+WebSocket+Netty實現(xiàn)在線聊天/群聊系統(tǒng)

    Springboot+WebSocket+Netty實現(xiàn)在線聊天/群聊系統(tǒng)

    這篇文章主要實現(xiàn)在好友添加、建群、聊天對話、群聊功能,使用Java作為后端語言進行支持,界面友好,開發(fā)簡單,文章中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-08-08
  • Java使用策略模式實現(xiàn)聚石塔接口調(diào)用的問題

    Java使用策略模式實現(xiàn)聚石塔接口調(diào)用的問題

    這篇文章主要介紹了Java使用策略模式實現(xiàn)聚石塔接口調(diào)用,為了避免多重判斷,而且有更好的擴展性,首選了策略模式來實現(xiàn),具體解決方法跟隨小編一起看看吧
    2021-12-12
  • Spring Boot讀取自定義配置文件

    Spring Boot讀取自定義配置文件

    在Spring Boot項目中我們經(jīng)常需要讀取application.yml配置文件的自定義配置,今天就來羅列一下從yaml讀取配置文件的一些常用手段和方法。
    2021-05-05
  • Spring?MVC??接受請求參數(shù)的方法

    Spring?MVC??接受請求參數(shù)的方法

    了解HTTP請求的GET和POST方法中如何攜帶參數(shù),以及SpringMVC中如何接收這些參數(shù),GET方法通過URL傳遞參數(shù),而POST方法通常在請求體中傳遞,SpringMVC使用注解如@RequestParam和@RequestBody來綁定參數(shù)到控制器方法
    2024-09-09

最新評論

隆化县| 兴和县| 普定县| 临洮县| 饶河县| 棋牌| 泽普县| 宁陕县| 永济市| 青岛市| 湘阴县| 民乐县| 延吉市| 邵阳市| 临桂县| 柞水县| 大竹县| 新营市| 武乡县| 潞城市| 昭苏县| 大城县| 志丹县| 望谟县| 颍上县| 呼伦贝尔市| 沙雅县| 南丰县| 永康市| 江川县| 德化县| 黔西| 五指山市| 广德县| 宁夏| 壤塘县| 巴彦县| 普宁市| 垣曲县| 靖宇县| 安福县|