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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

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

今天啟動(dòng)springboot時(shí),明明在resources目錄下面配置了application.yml的文件,但是卻讀不出來(lái),無(wú)奈看了下源碼,總結(jié)一下springboot查找配置文件路徑的過(guò)程,能力有限,歡迎各位大牛指導(dǎo)!!!

spring加載配置文件是通過(guò)listener監(jiān)視器實(shí)現(xiàn)的,在springboot啟動(dòng)時(shí):

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

在容器啟動(dòng)完成后會(huì)廣播一個(gè)SpringApplicationEvent事件,而SpringApplicationEvent事件是繼承自ApplicationEvent時(shí)間的,代碼如下:

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

由于ConfigFileApplicationListener監(jiān)聽(tīng)器實(shí)現(xiàn)了SmartApplicationListener接口,而SmartApplicationListener接口繼承了ApplicationListener<ApplicationEvent>接口,所以能監(jiān)聽(tīng)到上面廣播出來(lái)的SpringApplicationEvent事件,類的繼承圖如下:

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

SmartApplicationListener是繼承自ApplicationListener:

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

在ConfigFileApplicationListener中監(jiān)聽(tīng)事件的方法:

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

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

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

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

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

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

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

文件類型默認(rèn)的有四種:properties、xml、yml、yaml

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

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

根據(jù)拼出來(lái)的路徑去查找配置文件,一般配置文件都放在classpath目錄下面,當(dāng)讀取到classpath目錄下的配置文件的時(shí)候,程序去加載配置文件:

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

當(dāng)加載配置文件時(shí),程序先會(huì)讀取配置文件的spring.profiles.active屬性,確定加載什么環(huán)境的配置文件(我是加載dev的):

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

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

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

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

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件

注:這篇文章是為了解決配置文件找不到而寫(xiě)的,是為了解決問(wèn)題而寫(xiě)的,主要是解析查找配置文件路徑的過(guò)程,具體的解析配置文件的過(guò)程,讀者可以細(xì)看源碼,最后我也找到了配置文件為什么找不到的原因,主要是因?yàn)閕dea編譯時(shí),classpath路徑下面沒(méi)有application.yml文件,復(fù)制配置文件到classpath目錄下,問(wèn)題就解決了!

到此這篇關(guān)于詳解springboot啟動(dòng)時(shí)是如何加載配置文件application.yml文件的文章就介紹到這了,更多相關(guān)springboot啟動(dòng)加載application.yml內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产精品制服 | 国产国拍亚洲精品av | 精品一区二区在线欧美日韩 | 美日韩在线 | 亚洲欧美日韩国产 | 久久久久欧美国产精品 | 久久亚洲欧美 | 天天综合网天天综合色不卡 | 深夜小视频在线观看 | 中文字幕一区日韩在线视频 | 日韩欧美一区二区三区不卡视频 | 日韩大片免费观看视频播放 | 青青青视频蜜桃一区二区 | 久久er国产精品免费观看2 | 一级美女黄色片 | 亚洲精品欧美日韩 | 激情五月色婷婷 | 久久久久国产一级毛片高清版 | 青青草久热精品视频在线观看 | 成人在线免费视频播放 | 成人毛片18女人毛片免费视频未 | 制服丝袜综合第八页 | 中文字幕久热在线精品 | 国产免费全部免费观看 | 欧美一级级毛片 | 一及黄色片| 欧美性福利| 国产毛片高清 | 国产精品欧美韩国日本久久 | 国产在线观看成人 | 国产精品一级视频 | 亚洲人成在线精品 | 亚洲人成影院午夜网站 | 国产精品亚洲综合第一区 | 日韩精品一区在线 | 一本高清在线视频 | 中文字幕永久在线视频 | 黑人狂躁日本妞 | 一级成人毛片免费观看 | 在线观看国产精品入口 | 欧美亚洲综合另类在线观看 |