當前位置:
首頁 > 最新 > Spring解密-Bean 載入流程

Spring解密-Bean 載入流程

是一個開源的設計層面框架,解決了業務邏輯層和其他各層的松耦合問題,將面向介面的編程思想貫穿整個系統應用,同時它也是 必備技能之一...

前言

在 Spring解密 - XML解析 與 Bean註冊 中,講了 ,本章將詳細講解,相比 而言,載入稍微複雜一點.

入口

重點分析

解密

在分析 的載入過程前,我們看看 的由來,以及 所屬的類是誰。磨刀不誤砍柴工

BeanFactory 的由來

1.查看的源碼,此處的 是怎麼來的?

2.應用程序的上下文

在 中,跳轉到重載的構造方法中,我們會發現如下代碼

它的目的是將普通路徑解析為路徑資源名稱。多個配置文件的情況下,後載入的 會覆蓋先前定義好的,這樣做的目的是為了通過額外的XML文件來特意重寫某個 。這裡我們可以看到調用了一個 ,它的作用是什麼呢?

3.初始化

刷新容器

初次載入完 後,肯定會進入到 方法中,這個時候會做容器初始化的工作,也就是等等工作,由於本章重點介紹 ,所以只貼了少量代碼(看官莫急)

創建

從上面的代碼塊中,我們可以看到,最後 就可以正常使用了。

Bean 載入

整個 的裝載過程中,重點圍繞 ,只要把它搞定剩下的就輕鬆了

整個代碼塊的內容還是不少的,接下來我們一步一步的分析。

轉換 BeanName

去除 的修飾符,最終取指定 所表示的 。因為有可能獲取到以&開頭的 ,所以要進行轉化(關於和後面會進行區分)

載入單例

檢查緩存中是否存在 該 的單例,如容器初始化的時候或者其他地方已經調用過 完成了初始化

緩存載入 Bean

默認在裝載 的時候會先去檢查 是否存在,如果存在直接提取緩存的。

構建實例(無緩存情況)

緩存中沒有,那就當場構建一個 出來,可以看到有兩個參數,其中的是怎麼來的呢?接著往下看

構建

此處與其說是構建,不如說是在創建一個單例

創建 Bean

在創建 之前, 還做了不少工作。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 battcn 的精彩文章:

TAG:battcn |