《springboot原始碼系列》 自動裝配原理

2022-09-18 21:00:13 字數 1545 閱讀 7555

輔助判斷

初始化第三方jar擴充套件點

這個方法點進去,最終是執行了 springfactoriesloader.loadfactorynames(type, classloader)); 可以看到這裡印證了我們上面說的掃瞄所有依賴jar 的 meta-inf/spring.factories 所有的配置類。

run()點選來,上面幾行沒啥實際意義,然後掃瞄實現了 runlisteners 了的類,然後 listeners.starting(); **他們的方法。

然後通過 prepareenvironment() 獲取環境配置。

初始化spring容器

準備容器

執行的擴充套件點(自動裝配)

refreshcontext()這裡就會對 spring容器 進行refresh操作了、執行容器中的所有bean。**邏輯比較繁瑣,我這裡直接貼出來呼叫路徑。refreshcontext(context); ——> refresh(context); ——> refresh()

啟動內建tomcat

初始化bean

然後繼續往下走到了 finishbeanfactoryinitialization(beanfactory);到了這裡 beanfactory.preinstantiatesingletons(); 就是springboot的自動裝配了。會將所有第三方jar的的bean例項化好、比如redis、mybatis,以及我們自己寫的 controller、service 之內的。並注入到spring中去。

SpringBoot系列 自動配置原始碼分析

target elementtype.type retention retentionpolicy.runtime documented inherited springbootconfiguration enableautoconfiguration componentscan excludefi...

springboot原始碼略讀

springboot的精髓是自動依賴注入。那麼哪些能自動注入呢,開啟spring boot autoconfigure,jar下的spring.factories。可以看到一堆這樣的配置 auto configure org.springframework.boot.autoconfigure.en...

SpringBoot原始碼分析

public class 第乙個引數 resourceloader 資源載入器 第二個引數 primarysources 載入的主要資源類 suppresswarnings public resourceloader resourceloader,class primarysources deduc...