亚洲精品不卡久久久久久_色视频线观看在线 _妽妽夹得我好舒服_国产真人一级a爱做片高潮_亚洲aⅴ无码专区在线观看q

當(dāng)前位置: 首頁(yè) >縱橫 > 正文

聊聊 Springboot 啟動(dòng)原理

2023-07-01 10:26:37 來(lái)源:java知路

Spring Boot的啟動(dòng)原理是通過(guò)SpringApplication類來(lái)實(shí)現(xiàn)的。具體流程如下:


【資料圖】

創(chuàng)建一個(gè)應(yīng)用程序的SpringApplication實(shí)例。

分析應(yīng)用程序的上下文環(huán)境(包括Java系統(tǒng)屬性、環(huán)境變量、命令行參數(shù)等),并將其轉(zhuǎn)化為一個(gè)可配置的ApplicationContextInitializer列表。

創(chuàng)建一個(gè)可配置的Environment實(shí)例,并且將其作為參數(shù)傳遞給創(chuàng)建的ApplicationContextInitializer列表中的每個(gè)實(shí)例進(jìn)行初始化。

創(chuàng)建一個(gè)可配置的ResourceLoader實(shí)例,并將其傳遞給創(chuàng)建的ApplicationContextInitializer列表中的每個(gè)實(shí)例進(jìn)行初始化。

調(diào)用ApplicationContextInitializer列表中每個(gè)實(shí)例的initialize方法,對(duì)應(yīng)用程序的上下文環(huán)境進(jìn)行初始化。

創(chuàng)建一個(gè)可配置的BeanDefinitionRegistry實(shí)例,并將其傳遞給創(chuàng)建的ApplicationContextInitializer列表中的每個(gè)實(shí)例進(jìn)行初始化。

創(chuàng)建一個(gè)可配置的ApplicationContext實(shí)例,并且將其作為參數(shù)傳遞給創(chuàng)建的ApplicationContextInitializer列表中的每個(gè)實(shí)例進(jìn)行初始化。

調(diào)用ApplicationContextInitializer列表中每個(gè)實(shí)例的initialize方法,對(duì)ApplicationContext進(jìn)行初始化。

注冊(cè)應(yīng)用程序的主類(如果存在)作為一個(gè)bean,并調(diào)用其run方法來(lái)啟動(dòng)應(yīng)用程序。

如果應(yīng)用程序的主類是一個(gè)ServletInitializer(用于Web應(yīng)用程序),則通過(guò)調(diào)用其onStartup方法來(lái)啟動(dòng)Web容器。

使用Spring的DispatcherServlet來(lái)處理HTTP請(qǐng)求。

如果應(yīng)用程序的主類實(shí)現(xiàn)了CommandLineRunner接口,則調(diào)用其run方法,以便在應(yīng)用程序啟動(dòng)后執(zhí)行一些額外的邏輯。

Spring Boot的啟動(dòng)原理是通過(guò)創(chuàng)建SpringApplication實(shí)例來(lái)分析應(yīng)用程序的上下文環(huán)境并初始化ApplicationContext,然后通過(guò)調(diào)用應(yīng)用程序的主類來(lái)啟動(dòng)應(yīng)用程序,同時(shí)處理Web請(qǐng)求和執(zhí)行一些額外的邏輯。

標(biāo)簽:

返回頂部