IOC容器簡介和學習大綱

2021-08-15 22:40:19 字數 2340 閱讀 3134

了解到spring框架的兩大核心:ioc和aop

我們的原始碼分析首先就來學習spring的ioc容器,之後是aop

這一篇我們先了解一下什麼是ioc容器以及後續ioc容器部分學習大綱

1)常規方式建立物件

正常情況下,多個類相互配合工作,在入口類通過new來建立所依賴的物件例項(持有引用)
2)控制反轉建立物件

控制反轉,是將需要的物件預先建立出來放到容器中

當需要物件引用時,向容器申請並由容器注入到物件中,即依賴注入

3)控制反轉,反轉了什麼?

所謂控制反轉(也叫依賴反轉),其實是依賴物件的獲得被反轉了,所以也被稱作依賴注入

應用控制反轉後,當物件被建立時,由乙個ioc容器將依賴物件注入到物件中

所以,控制反轉是關於乙個物件如何獲取它所依賴物件的引用,這裡的反轉指的是責任的反轉

4)控制反轉(ioc)和依賴注入(di)

控制反轉(ioc):指的是容器控制物件

依賴注入(di):指的是物件需要依賴容器來獲得

所以說,ioc和di是同一思想下不同維度的表現

5)常規方式和控制反轉的對比-控制反轉的優點

常規方式下,由入口類主動建立依賴物件,這導致**高度耦合並降低了**的可測試性

依賴反轉,將物件的依賴注入交給容器完成,解耦**的同時提高了**的可測試性

6)設計模式的應用

設計原則中包含一條"好萊塢"原則,即控制反轉

好萊塢原則:「不要給我們打**,我們會給你打**(don『t call us, we『ll call you)」

這一點在ioc上得到了完美體現,ioc注重的是設計思想,從常規建立物件的做法(new物件),

轉變為向ioc容器提交申請,被動等待ioc容器返回資源。

模板方法模式充分的體現了「好萊塢」原則

有了控制反轉和依賴注入的基礎,我們來認識一下spring的ioc容器

在spring框架中,ioc容器是控制反轉模式實現的載體

ioc容器是具有依賴注入功能的容器,是可以建立物件的容器

ioc容器負責例項化、定位、配置應用程式中的物件及建立這些物件間的依賴

通過依賴注入在容器建立物件後,處理物件的依賴關係

1)為什麼使用ioc容器

將物件導向系統中的物件進行分類,除了一部分是資料外,大多數物件是用來處理資料的

這些物件是系統中的基礎部分且不常變化,所以這些物件以單件形式就可以滿足應用需求

同時,這些物件間的依賴關係也比較穩定,一般不會隨應用的執行狀態而改變

基於以上特性,這些物件非常適合由ioc容器進行管理

2)ioc容器的優點

ioc容器將物件的依賴關係有序地建立起來

通過使用ioc容器,物件依賴關係的管理被反轉到了ioc容器中

物件之間的相互依賴關係由ioc容器進行管理,並由ioc容器完成物件的注入

簡化了物件依賴關係的管理,把應用從複雜的物件依賴關係管理中解放出來

3)ioc容器的注入方式

ioc容器可以在物件生成或初始化時直接將資料注入到物件中

也可以通過將物件引用注入到物件資料域中的方式來注入對方法呼叫的依賴

這種依賴注入是可遞迴的,物件被逐層注入

注入方式:

介面注入-不推薦,違背spring離開框架也能活的非侵入式設計原則

setter注入(推薦)

構造器注入

註解方式注入(推薦)

spring ioc容器提供了對特定依賴的檢查,以防止注入異常

學習spring ioc容器,首先我們先列出乙個學習大綱

1,ioc容器的結構體系:

分析ioc容器的介面繼承關係及不同介面的功能實現,如beanfactory定義ioc最基本功能

2,ioc容器實現

3,ioc容器的初始化過程

ioc容器初始化都做了那些事情?資源定位,bean的載入和解析,註冊等

4,ioc容器的依賴注入

容器初始化完成後,什麼時候發生依賴注入,如何實現的注入

5,ioc容器lazy-init預例項化的實現

6,beanfactory的實現

7,beanpostprocessor後置處理器的實現

8,自動裝配(autowiring)的實現

9,bean的依賴檢查

10,bean感知ioc容器

目前暫時只想到這些,更新過程中會有適當的變更和細化,隨時更新

IOC容器簡介

了解到spring框架的兩大核心模組 ioc容器和aop 原始碼分析首先從ioc容器開始,之後再來看aop 這一篇我們先來了解一下什麼是ioc容器,以及ioc容器的功能 1 正常開發模式 非依賴反轉 正常的,合作物件的引用或依賴關係的管理由具體物件來完成 持有被引用的物件 這導致了 高度耦合並且降低...

Spring學習01 IOC容器(簡介,注入)

1 ioc ioc 控制反轉 本來應該有應用程式管理的物件之間的依賴關係,現在交給容器管理,這就是控制反轉的定義,即交給了ioc容器。spring的ioc主要是依賴於di 注入 實現的,不需要應用程式去主動查詢,物件的查詢 定位 建立都交由容器管理。2 spring的優勢 1 大量減少了factor...

IOC容器學習筆記

ioc inversion of control 即控制反轉技術,其基本原理是基於所謂hollywood模式思想 don t call me i ll call you 思想。也就是說,所有的元件都是被動的,所有元件初始化和呼叫都有容器負責。元件處在容器當中,有容器負責管理。舉乙個例子,公司有一台聯...