spring原始碼學習 初啟

2021-10-09 20:14:40 字數 965 閱讀 3301

spring最重要的概念是ioc和aop,其中ioc又是spring的根基。

我們來先看看spring的整體架構

spring框架是乙個分層架構,它包含一系列的功能要素,並被分為大約20個模組,如下圖所示:

從看出,整個模型就是乙個容器關係,spring通過動態載入不同的模組實現我們想要的功能,而最ioc控制反轉的概念實現了整個系統建立bean與使用bean的解耦,通過依賴注入實現了類的拿來主義的方式。

使用的時候通過名字或者注釋自動注入就能使用了,所有的建立過程交給了ioc標準流程去處理,因為有了統一的標準,所以ioc上實現的擴充套件性,所有符合該標準的都可以進行擴充套件,這種開放式的設計讓開發產生了巨大的生命力。

ioc 容器:最主要是完成了完成物件的建立和依賴的管理注入等等。

簡單來說,就是乙個工廠模型,通過解析配置檔案建立bean。

其中beanfactory作為最頂層的乙個介面類,它定義了ioc容器的基本功能規範,beanfactory 有三個子類:listablebeanfactory、hierarchicalbeanfactory 和autowirecapablebeanfactory。

如 listablebeanfactory 介面表示這些 bean 是可列表的,而 hierarchicalbeanfactory 表示的是這些 bean 是有繼承關係的,也就是每個bean 有可能有父 bean。autowirecapablebeanfactory 介面定義 bean 的自動裝配規則。而defaultlistablebeanfactory,他實現了所有的介面。這四個介面共同定義了 bean 的集合、bean 之間的關係、以及 bean 行為。

而要知道工廠是如何產生物件的,我們需要看具體的ioc容器實現,spring提供了許多ioc容器的實現。

下章說說個人對ioc的載入過程理解,歡迎大神們指導。

Spring原始碼學習

a spring 初始化的時候首先要執行的類為 org.springframework.web.context.contextloaderlistener 或 org.springframework.web.context.contextloaderservlet 接下來看一下在這個方法裡幹了寫什麼...

spring 原始碼學習

springioc 學習 1 依賴查詢 2 依賴注入 spring實現ioc的思路是提供一些配置資訊用來描述類之間的依賴關係,然後由容器去解析這些配置資訊,繼而維護好物件之間的依賴關係,前提是物件之間的依賴關係必須在類中定義好 spring依賴注入的方法 構造方法和setter方法 3 類載入模式 ...

spring原始碼學習

1.beandefinitionregistry是儲存bean定義資訊的介面 2.例項化beanfactorypostprocessor,3.初始化工廠 4.迴圈呼叫beanfactorypostprocessor.postprocessbeanfactory 5.例項化beanpostproces...