Spring Bean初始化過程

2021-07-25 08:37:43 字數 1225 閱讀 2946

從該繼承體系可以看出:

2. abstractbeanfactory 和 abstractautowirecapablebeanfactory 是兩個模 板抽象工廠類。abstractbeanfactory 提供了 bean 工廠的抽象基類,同時提供 了 configurablebeanfactory 的完整實現。abstractautowirecapablebeanfactory 是繼承 了 abstractbeanfactory 的抽象工廠,裡面提供了 bean 建立的支援,包括 bean 的建立、依賴注入、檢查等等功能,是乙個 核心的 bean 工廠基類。

如上**加上就是整個bean的初始化過程。我們知道bean有可以配置單列以及懶載入形式。在初始化的過程中,我們也能很好的觀察到這個過程的實現。

在abstractbeanfactory中定義了getbean()方法,而它又呼叫dogetbean().

getbean 的大概過程:

1.  先試著從單例快取物件裡獲取。

2. 從父容器裡取定義,有則由父容器建立。

3. 如果是單例,則走單例物件的建立過程:在 spring 容器裡單例物件和非單例物件的建立過程是一樣的。都會呼叫父 類 abstractautowirecapablebeanfactory 的 createbean 方法。 不同的是單例物件只建立一次並且需要快取起來。 defaultlistablebeanfactory 的父類 defaultsingletonbeanregistry 提供了對單例對 象快取等支援工作。所以是單例物件的話會呼叫 defaultsingletonbeanregistry 的 getsingleton 方法,它會間 接呼叫abstractautowirecapablebeanfactory 的 createbean 方法。

如果是 prototype 多例則直接呼叫父類 abstractautowirecapablebeanfactory 的 createbean 方法。

Spring Bean的建立初始化過程 原始碼分析

title spring bean的建立初始化過程 原始碼分析 date 2020 04 20 19 59 24 tags spring bean的生命週期簡單來說 bean建立 初始化 銷毀的過程 bean的建立初始化 當完成了spring容器的初始化以及beandefinition的蒐集入庫後,...

spring bean的初始化與銷毀

spring bean的初始與銷毀 這裡只介紹bean的初始與銷毀時呼叫的方法 不配置就不呼叫 這是要測試的bean public class testbean public void destroy 1.初始化的兩種方式 1 實現initializingbean介面的 public class b...

類初始化和例項初始化過程

類初始化過程 乙個類要建立例項需要先載入並初始化該類 main方法所在的類需要先載入和初始化 乙個子類要初始化需要先初始化父類 乙個類初始化就是執行 方法 由靜態類變數賦值 和靜態 塊組成 靜態類變數賦值 和靜態 塊從上往下執行 方法只執行一次 例項初始化過程 例項初始化就是執行 方法 方法可能過載...