Spring原始碼閱讀 四 IOC

2021-07-23 21:53:29 字數 825 閱讀 7983

上**:

throws

bean***ception }

public

void refresh() throws

bean***ception, illegalstateexception

這裡面列出了ioc容器初始化的大致步驟,第一步很容易看出來是初始化準備,這個方法裡只是設定了乙個活動標識,我們主要來看第二步,obtainfreshbeanfactory這個方法,它是用來告訴子類重新整理內部的bean工廠,接下來我們跟蹤進去看看。

protected

configurablelistablebeanfactory obtainfreshbeanfactory()

return

beanfactory;

}

protected

final

void refreshbeanfactory() throws

bean***ception

try }

catch

(ioexception ex)

}

方法加上了final關鍵字,也就是說此方法不可被重寫,可以很清楚的看到,ioc容器的初始化就是在這個方法裡發生的,第一步先是判斷有無現有的工廠,有的話便會將其摧毀,否則,就會建立乙個預設的bean工廠,也就是前面提到的defaultlistablebeanfactory,注意看loadbeandefinitions(beanfactory);這裡,當我們建立了乙個預設的bean工廠以後,便是載入bean的定義。這與我們上一章所使用的原始的建立bean工廠的方式極為相似。

Spring原始碼 IOC(一)

它是spring中bean容器的頂級介面。裡面有獲取bean,判斷是否包含bean,是否單例,獲取別名等基本方法 listablebeanfactory 根據條件獲取bean的配置清單。如string getbeandefinitionnames 返回bean在工廠中定義的名稱。bean在工廠中定義...

閱讀Spring原始碼

如何閱讀spring原始碼 學習原始碼的思路 為擴充套件 調優 掌握框架的工作流程和原理。提公升自己的程式設計能力 學習他人的設計模式和思路。掌握設計方法和分析思路。學習原始碼的方法 思路掌握問題域理論和核心概念 搞明白做什麼,如何做 從整體到部分 找到入口,先理清主幹流程,後細節 多思考,多分析 ...

Spring原始碼學習(一) IoC

一直想抽空把spring原始碼拿來讀讀,但真正去做這件事的時候發現不簡單,spring發展這麼多年,它的規模已不是乙個一般的開源框 架所能比的,它的主要架構和流程不是非常清晰,很難抓到要害,但有一點可以肯定,它的根基是ioc和aop,所有的功能擴充套件和對其他開源框架的支援都是基 於這兩點來做的,因...