Spring DI運行時序圖以及源碼分析

時序圖

SpringDI-依賴注入的概念

依賴注入發生的時間

當SpringIOC容器完成了Bean定義資源的定位、載入和解析註冊以後,IOC容器中已經管理了Bean定義的相關數據。但此時IOC容器還沒有對所管理的Bean進行依賴注入。依賴注入在以下兩種情況發生:
           1.用戶第一次調用getBean()方法時,IOC容器觸發依賴注入
           2.當用戶在配置文件中將<bean>元素配置了 lazy-init=false 屬性,即讓容器在解析註冊 Bean 定義時進行預實例化,觸發依賴注入。

尋找Bean的入口

在BeanFactory中可以找到getBean()方法,具體實現在AbstractBeanFactory中,在getBean()方法中又調用doGetBean方法向IOC容器獲取被管理的Bean,在BeanFactory中可以找到getBean()方法,具體實現在AbstractBeanFactory中,在getBean()方法中又調用doGetBean方法向IOC容器獲取被管理的Bean,在doGetBean方法中會調用createBean方法,具體實現在AbstractAutowireCapableBeanFactory中。createBean方法中會調用doCreateBean方法,在doCreateBean方法中完成對Bean的依賴注入,最終由registerDisposableBeanIfNecessary方法註冊完成依賴注入的bean。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章