亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

詳解springboot啟動時是如何加載配置文件application.yml文件

瀏覽:17日期:2023-05-11 10:41:47

今天啟動springboot時,明明在resources目錄下面配置了application.yml的文件,但是卻讀不出來,無奈看了下源碼,總結一下springboot查找配置文件路徑的過程,能力有限,歡迎各位大牛指導!!!

spring加載配置文件是通過listener監視器實現的,在springboot啟動時:

詳解springboot啟動時是如何加載配置文件application.yml文件

在容器啟動完成后會廣播一個SpringApplicationEvent事件,而SpringApplicationEvent事件是繼承自ApplicationEvent時間的,代碼如下:

詳解springboot啟動時是如何加載配置文件application.yml文件

詳解springboot啟動時是如何加載配置文件application.yml文件

由于ConfigFileApplicationListener監聽器實現了SmartApplicationListener接口,而SmartApplicationListener接口繼承了ApplicationListener<ApplicationEvent>接口,所以能監聽到上面廣播出來的SpringApplicationEvent事件,類的繼承圖如下:

詳解springboot啟動時是如何加載配置文件application.yml文件

SmartApplicationListener是繼承自ApplicationListener:

詳解springboot啟動時是如何加載配置文件application.yml文件

在ConfigFileApplicationListener中監聽事件的方法:

詳解springboot啟動時是如何加載配置文件application.yml文件

postProcessEnvironment方法是查找application.yml配置文件的入口方法:

詳解springboot啟動時是如何加載配置文件application.yml文件

在load方法里面才是真正查找配置文件的過程:

詳解springboot啟動時是如何加載配置文件application.yml文件

默認先讀取的是location,然后是配置文件的名字“application”,最后才是文件類型“properties”或者“yml”;

localtion有多種,可以自行debug:有file:./和file:./config和classpath等目錄;

文件類型默認的有四種:properties、xml、yml、yaml

最后查找的具體路徑:location + name + '-' + profile + '.' + ext

詳解springboot啟動時是如何加載配置文件application.yml文件

根據拼出來的路徑去查找配置文件,一般配置文件都放在classpath目錄下面,當讀取到classpath目錄下的配置文件的時候,程序去加載配置文件:

詳解springboot啟動時是如何加載配置文件application.yml文件

詳解springboot啟動時是如何加載配置文件application.yml文件

當加載配置文件時,程序先會讀取配置文件的spring.profiles.active屬性,確定加載什么環境的配置文件(我是加載dev的):

詳解springboot啟動時是如何加載配置文件application.yml文件

然后在讀取到的配置文件的屬性加載到profiles隊列中重新加載配置文件,代碼如下,所以任何項目都必須現有一個基礎的配置文件,如application.yml,然后在這個配置文件里面有一個active屬性;

詳解springboot啟動時是如何加載配置文件application.yml文件

程序會先拿到這個屬性,放到profiles屬性中,重新去加載配置文件如application-dev.yml,程序如下:

詳解springboot啟動時是如何加載配置文件application.yml文件

詳解springboot啟動時是如何加載配置文件application.yml文件

注:這篇文章是為了解決配置文件找不到而寫的,是為了解決問題而寫的,主要是解析查找配置文件路徑的過程,具體的解析配置文件的過程,讀者可以細看源碼,最后我也找到了配置文件為什么找不到的原因,主要是因為idea編譯時,classpath路徑下面沒有application.yml文件,復制配置文件到classpath目錄下,問題就解決了!

到此這篇關于詳解springboot啟動時是如何加載配置文件application.yml文件的文章就介紹到這了,更多相關springboot啟動加載application.yml內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 亚洲精品国产成人中文 | 伊人成人在线观看 | 西川结衣在线精品视频 | 欧美一级永久免费毛片在线 | 国产精品亚洲专区一区 | 91精品国产闺蜜国产在线 | 国产成人高清一区二区私人 | 亚洲精品成人一区二区aⅴ 亚洲精品大片 | 久久精品2019www中文 | 日韩经典中文字幕 | 国产精品合集一区二区 | 免费黄色网址大全 | 免费一级黄色 | 国产精品视频网 | 国产欧美日韩综合一区二区三区 | yiren22亚洲综合高清一区 | 牛牛a级毛片在线播放 | 久久精品国产一区二区三区不卡 | 国产首页精品 | 欧美日韩高清不卡免费观看 | 国产成人久久精品 | 国产亚洲精品久久午夜 | 小草免费在线视频 | 国产亚洲精品xxx | 久久er国产精品免费观看8 | 成人深夜网站 | 日韩爽爽视频爽爽 | 国产高清色播视频免费看 | 亚洲欧美日韩高清中文在线 | 亚洲+自拍+色综合图区一 | 国产美女在线精品观看 | 亚洲高清在线天堂精品 | 成人免费精品视频 | 一级做a爰性色毛片免费 | 狠狠色丁香婷婷综合久久来 | 欧美一区二区三区播放 | 一级片免费在线 | 免费一级乱子伦片 | 一级特黄aa大片一又好看 | 婷婷婷色 | 亚洲欧美日韩国产综合久 |