spring原始碼筆記 初識IOC容器

2021-10-10 13:47:07 字數 798 閱讀 8606

ioc容器和aop是spring的核心,學習spring原始碼對這兩個核心先有個概念上的認識還是有必要的,今天先認識一下什麼是ioc容器,ioc的乙個原理,以及ioc的設計實現。
釋義:ioc是inversion of control的縮寫叫控制反轉 它所圍繞的內容是乙個物件如何獲取它所依賴的物件的引用,控制指的是責任 即乙個物件獲取它所依賴的物件的引用的責任,反轉指的是責任的反轉 eg. 在普通模式下a類需要依賴b類 需要在a類中 通過new的方式建立b類,可以看成責任在a身上,使用了spring 框架後 只要類b已經通過註解或者xml方式申明為乙個bean ioc容器會管理這些bean 當a類在依賴b類時,只需要申明b型別的乙個屬性並指定注入方式, ioc容器會幫a類建立b類的物件並根據指的的注入方式注入到a物件中。此時a物件獲取所依賴的b物件的引用的這個責任就落在了容器的頭上,所以ioc就是這麼乙個責任的反轉。ioc容器可以理解就是完成責任反轉的乙個平台,包括提供一些容器儲存需要被管理的物件,提供一些工具識別哪些物件需要被管理,根據一些事件觸發對物件的建立以及注入等。

原理:ioc的原理其實就是di(dependency inversion principle)即依賴注入原理 首先原理一般都是指實現某乙個功能的理論依據,ioc容器原理其實一樣 表示的是 實現控制反轉的理論依據,它的理論就是容器不會無緣無故的就給a物件提供所依賴的b物件,但是如果a物件申明了對b物件有依賴並指定了注入方式,同時容器又有能力管理b物件 這個時候容器就能根據依賴進行注入。進而實現了了控制反轉,所以di就是ioc的原理。

設計實現:待補充

Spring 原始碼筆記

1.1 載入配置檔案 doloadconfig config.getinitparameter contextconfiglocation 如果是載入properties相對簡單一點,xml要解析,複雜一點 properties properties newproperties inputstrea...

spring原始碼筆記

beanfactory是頂層介面,最終實現類是defaultlistablebeanfactory,beanfactory有三個重要的子類,listablebeanfactory,hierarchicalbeanfactory autowirecapablebeanfactory 其中listabl...

spring原始碼分析 spring原始碼分析

1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...