SpringBoot IOC容器初始化的全流程
SpringBoot IOC容器初始化流程
IOC 容器的初始化,核心工作實在 AbstractApplicationContext.refresh 方法中完成
在方法中主要做這么幾件事情
準備 BeanFactory
在這一塊會為 BeanFactory 設(shè)置很多屬性,比如類加載器等等。

執(zhí)行 BeanFactoryPostProcessors 后置處理器
這一階段會掃描放入容器中的 Bean 信息,得到 BeanDefinition(只掃描不創(chuàng)建)

注冊 BeanProcessors
這一階段我們自己寫的 BeanPostProcessors 會被加載,將來 Bean 實例化好之后需要用到。

啟動 tomcat

實例化所有非懶加載的單例 Bean
多例 Bean 以及懶加載 Bean 不會在這個階段創(chuàng)建,以后用到了才創(chuàng)建。

容器初始化完成后會做一些掃尾工作
清理緩存。
總結(jié)
在 IOC 容器初始化中,首先先準備 BeanFactory,執(zhí)行 BeanFactoryPostProcessors 后置處理器,注冊 BeanProcessors 并啟動 tomcat,最后通過 BeanFactory 加載所有非懶加載的單例 Bean。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中@ConditionalOnProperty注解使用
在Spring?Boot中,@ConditionalOnProperty注解是一種方便的工具,用于根據(jù)應(yīng)用程序配置文件中的屬性值來控制Bean的創(chuàng)建和加載,本文就來介紹一下Java中@ConditionalOnProperty注解使用,感興趣的可以了解一下2023-11-11
SpringBoot返回統(tǒng)一的JSON標準格式實現(xiàn)步驟
這篇文章主要介紹了SpringBoot返回統(tǒng)一的JSON標準格式,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
springboot動態(tài)加載jar包動態(tài)配置實例詳解
這篇文章主要給大家介紹了關(guān)于springboot動態(tài)加載jar包動態(tài)配置的相關(guān)資料,在項目開發(fā)的過程中,有時候需要動態(tài)靈活的加載某個jar包并執(zhí)行其里面的方法的時候,需要的朋友可以參考下2023-11-11
數(shù)據(jù)結(jié)構(gòu)與算法之手撕排序算法
排序算法看似簡單,其實不同的算法中蘊涵著經(jīng)典的算法策略。通過熟練掌握排序算法,就可以掌握基本的算法設(shè)計思想,本文主要介紹了Java中的排序算法,需要的朋友歡迎閱讀2023-04-04
java利用Future實現(xiàn)多線程執(zhí)行與結(jié)果聚合實例代碼
這篇文章主要給大家介紹了關(guān)于java利用Future實現(xiàn)多線程執(zhí)行與結(jié)果聚合的相關(guān)資料,Future模式的核心,去除了主函數(shù)的等待時間,并使得原本需要等待的時間段可以用于處理其他業(yè)務(wù)邏輯,需要的朋友可以參考下2021-12-12
客戶端Socket與服務(wù)端ServerSocket串聯(lián)實現(xiàn)網(wǎng)絡(luò)通信
這篇文章主要為大家介紹了客戶端Socket與服務(wù)端ServerSocket串聯(lián)實現(xiàn)網(wǎng)絡(luò)通信的內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03

