前言
spring boot的入口想必大家都知道膝宁,初始化spring boot項(xiàng)目之后有個(gè)啟動(dòng)類癞埠,啟動(dòng)類里的main方法就是它入口了橡卤,運(yùn)行這個(gè)main方法就可以把項(xiàng)目跑起來(lái)了肝劲。那么運(yùn)行main方法之后葵蒂,是怎么把a(bǔ)ppliaction.yml配置文件加載進(jìn)去的梁沧,大家知道嗎檀何?今天我們就一起來(lái)探秘吧!
環(huán)境準(zhǔn)備
spring boot 2.6.2
運(yùn)行main方法廷支,開始跟蹤源碼频鉴,找到關(guān)鍵方法
跟到這里之后我們可以先停下,看下最后一張圖的注釋恋拍,"Run the Spring application, creating and refreshing a new ApplicationContext.",翻譯后即為:運(yùn)行一個(gè)spring應(yīng)用垛孔,生成并刷新一個(gè)新的ApplicationContext。那什么是ApplicationContext呢施敢,鼠標(biāo)移上去之后周荐,會(huì)有說明喂窟,"Gentral interface to provide configuration for an application", 抓住關(guān)鍵字"configuration",那不就是配置信息嗎赔硫,說到配置信息妇汗,那可不就是我們的appliaction.yml等太,看來(lái)我們已經(jīng)找到關(guān)鍵的方法了胆描,在try模塊里有一個(gè)方法prepareEnvironment布疙,大膽猜下冈绊,應(yīng)該就是它了练链。
準(zhǔn)備運(yùn)行環(huán)境先壕,prepareEnvironment方法跟蹤源碼
經(jīng)過艱難險(xiǎn)阻瘩扼,我們終于就跟到地方了,在這個(gè)方法里我們拿到了application.yml中我們配置的server.port和spring.application.name兩個(gè)參數(shù)垃僚。
加載application.yml配置完成
最終當(dāng)listeners.environmentPrepared方法執(zhí)行完集绰,在environment這個(gè)參數(shù)里就已經(jīng)封裝了我們的配置信息了。
需要源碼的可以關(guān)注公眾號(hào)【溫故知新之java】谆棺,更多干活與你分享栽燕。