1. 程式人生 > >Spring Core---------IoC控制反轉

Spring Core---------IoC控制反轉

IoC(Inversion of Control ,控制反轉)

         這是spring的核心,貫穿始終。但是什麼是控制反轉?控制反轉是一種將元件依賴關係的建立和管理置於程式外部的技術。由容器控制程式之間的關係,而不是由程式碼直接控制。將控制權轉向了容器,所以叫反轉。

生活例項

        我們是如何找女朋友的?常見的情況是,我們到處去看哪裡有長得漂亮身材又好的mm,然後打聽她們的興趣愛好、qq號、電話號、ip號、iq號………,想辦法認識她們,投其所好送其所要,然後嘿嘿……這個過程是複雜深奧的,我們必須自己設計和麵對每個環節。

         IoC是如何做?有點像通過婚介找女朋友,在我和女朋友之間引入了一個第三者:婚姻介紹所。婚介管理了很多男男女女的資料,我可以向婚介提出一個列表,告訴它我想找個什麼樣的女朋友,比如長得像李嘉欣,身材像林熙雷,唱歌像周杰倫,速度像卡洛斯,技術像齊達內之類的,然後婚介就會按照我們的要求,提供一個mm,我們只需要去和她談戀愛、結婚就行了。簡單明瞭,如果婚介給我們的人選不符合要求,我們就會丟擲異常。整個過程不再由我自己控制,而是有婚介這樣一個類似容器的機構來控制。Spring所倡導的開發方式就是如此,所有的類都會在spring容器中登記,告訴spring你是個什麼東西,你需要什麼東西,然後spring會在系統執行到適當的時候,把你要的東西主動給你,同時也把你交給其他需要你的東西。所有的類的建立、銷燬都由 spring來控制,也就是說控制物件生存週期的不再是引用它的物件,而是spring。

        對於某個具體的物件而言,以前是它控制其他物件,現在所有的物件都被spring控制,這叫控制反轉。IoC的一個重點是在系統執行中,動態的向某個物件提供它所需要的其他物件。這一點通過DI(Dependency Injection)注入

控制反轉好處

1、每一個模組只專注於它自己的任務

2、每一個模組都假定自己與其他模組無關,無需操心其它模組是如何實現和做什麼的

3、更換某個模組對其它模組無影響。

實現兩種策略:

第一、依賴查詢

第二、依賴注入(重點詳細介紹)

我們一般使用第二種,因為它的耦合性更低。而且元件不會用到某個容器特定API,可以脫離容器使用。

Java中6中技術控制反轉

1.使用依賴注入策略 factory pattern 工廠模式,通過向工廠傳入引數,返回具體的例項。

2.使用依賴注入策略中的service locator pattern服務定位器模式,將所有的服務訪問都包裝到物件中,對這些訪問進行封裝隔離,用一個類來實現統一的訪問管理。

3.使用依賴注入策略中的constructor injection 構造注入,通過建構函式建立依賴關係,容器通過呼叫類的建構函式將依賴注入其中

4.使用依賴注入策略中的setter injection設值注入,使用最廣泛,通過屬性來表達自己所依賴的物件和所需的值(最常用)

5.使用依賴注入策略中的interface injection 介面注入,為了將呼叫者和實現者在編譯期分離,我們動態載入實現類,並通過介面強制轉型後使用。

6.使用Dependencylookup 分為2中型別Dependency pull和Contexttualized dependency lookup(很少用)

想要了解更多Spring請從(Spring程式設計師的春天)開始


相關推薦

Spring Core---------IoC控制反轉

IoC(Inversion of Control ,控制反轉)          這是spring的核心,貫穿始終。但是什麼是控制反轉?控制反轉是一種將元件依賴關係的建立和管理置於程式外部的技術。由容器控制程式之間的關係,而不是由程式碼直接控制。將控制權轉向了容器,所以叫

Spring_第二章【核心控制器過SpringIoC(控制反轉) 、DI(依賴注入)】

1:什麼是核心控制器 1.1:spring框架主要分為核心容器(Core Container) 核心容器由spring-core,spring-beans,spring-context,spring-context-support和spring-expression(SpEL,Spr

零基礎帶你看Spring原始碼——IOC控制反轉

本章開始來學習下Spring的原始碼,看看Spring框架最核心、最常用的功能是怎麼實現的。 網上介紹Spring,說原始碼的文章,大多數都是生搬硬推,都是直接看來的觀點換個描述就放出來。這並不能說有問題,但沒有從一個很好的、容易切入的角度去了解學習。博主來嘗試拋棄一些所知,從使用上入手,步步回溯原始碼去了解

springioc控制反轉

控制反轉(ioc)和依賴注入 控制反轉(Inversion of Control,縮寫為IoC),是面向物件程式設計中的一種設計原則,可以用來減低計算機程式碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),通過控制反轉,物件在被建立的時候,由

SpringIoC(控制反轉) 、DI(依賴注入)(轉載)

轉自:https://www.cnblogs.com/xdp-gacl/p/4249939.html   學習過Spring框架的人一定都會聽過Spring的IoC(控制反轉) 、DI(依賴注入)這兩個概念,對於初學Spring的人來說,總覺得IoC 、DI這兩個概念是模糊不清的,

SpringIOC/DI(反轉控制/依賴註入)_入門Demo

pro 開發 string類 業務邏輯 測試類 控制 control odin 以及 軟件152 劉安民 在平時的java應用開發中,我們要實現某一個功能或者說是完成某個業務邏輯時至少需要兩個或以上的對象來協作完成,在沒有使用Spring的時候,每個對象在需要使用他的合作對

Spring詳解(二)------IOC控制反轉

tsp name 調試 的人 好的 turn 同時 eth 時機   我相信提到 Spring,很多人會脫口而出IOC(控制反轉)、DI(依賴註入)、AOP等等概念,這些概念也是面試官經常問到的知識點。那麽這篇博客我們就來詳細的講解 IOC控制反轉。   ps:本篇博客源

spring IOC控制反轉和DI依賴註入

req 記錄 run it is direct 模式 eve you target spring framework 的doc地址:https://docs.spring.io/spring/docs/current/spring-framework-reference/

Spring中的Ioc控制反轉與DI註入

pan info 1.2 復雜 auto pro size 掃描器 持久層 Spring的控制反轉   1.spring的介紹    spring是一款很受歡迎的java開源框架,核心全程圍繞著BeanFactory展開,構成如下圖。           2.IOC控制反轉

新手學習Spring IOC控制反轉和DI依賴轉入總結

except 堅持 this 控制 .get set style ava 文件 30歲的小曹,20歲的身體,還在堅持在能力允許控制範圍內22點睡覺,5點起床鍛煉身體,好好學習,除了加班或者像今天這樣的深夜,再一次寫已經有X百萬人寫過的 spring Ioc 的總結博客。 一

[Spring]IOC控制反轉

兩個 ron 控制 其中 感覺 它的 repo 培訓 初學 從之前算起到現在接觸Spring也已經有幾天了,進度也不是很快,就只弄懂了控制反轉和依賴註入那麽一點東西.然後敲了兩個demo 主要是因為之前沒有學過,然後網上資源很多但是都不是面向我們初學者的,大多都是直接上一堆

大話DI依賴注入+IOC控制反轉(二) 之 淺析.Net Core中的DI與IOC

      在上一篇文章中,我們聊了很多關於定義的方面,比較孤燥,下面我們結合.Net Core聊一下依賴注入&控制反轉。   三種物件生命週期       關於.Net Core中的容

Spring詳解篇之IoC控制反轉

###一.Spring概況 spring是一個開源框架 是一個輕量的控制反轉和麵向切面的容器框架 大小和開銷都是輕量的。 通過控制反轉技術可以達到鬆耦合的目的 切面程式設計,允許通過分離應用的業務邏輯。 包含並管理應用物件的配置和生命週期,是一個容器,並且能夠組

Spring中的IOC(控制反轉)與DI(依賴注入)理解由淺入深-適用於小白

IOC(Inversion of Control )與 DI(Dependency injection)是sping的主要思想,不是技術! IOC控制反轉:一般我們在一個類中呼叫其它的類(非靜態類),需要新建一個該類的例項或者從其他途徑獲取該類的例項,然後對通過該例項進行操

2.Spring學習筆記之 ————IoC(控制反轉)

控制反轉(IoC),是Spring裡一個專有的名詞,其意思就是說,物件的例項由Spring容器來進行建立而不是我們自己手動建立,當我們在Spring容器中設定好Bean屬性後,Spring容器就會自動建立其例項,我們只要去呼叫Spring的Bean就行。 接下來是例子:

Spring入門案例(Ioc 控制反轉

1、首先匯入spring必須要的4個核心包(beans、core、context、expression)+1個依賴(commons-logging...jar)              2、目標類

spring框架 (Ioc控制反轉

重點: 1、什麼是Spring; 2、ioc的優勢; 3、Spring注入方式; 重點解析: 一、Spring是什麼,使用有什麼好處 什麼是spring,它能夠做什麼? Spring是一個開源框架,它由Rod Johnson建立。它是為了解決企業應用開發

如何理解spring中的IOC(控制反轉)、DI(依賴注入)?

如何理解IOC(控制反轉)和DI(依賴注入) ioc是什麼? Ioc—Inversion of Control,即“控制反轉”,不是什麼技術,而是一種設計思想。在Java開發中,Ioc意味著將你設計好的物件交給容器控制,而不是傳統的在你的物件內部直接控制。如

Spring學習(三)IOC控制反轉與DI依賴注入

IOC(Inversion of Control,控制反轉)是spring的核心,貫穿始終。 所謂IOC,對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係: 傳統開發

Spring框架中IOC控制反轉和DI依賴注入區別

IOC控制反轉:說的是建立物件例項的控制權從程式碼控制剝離到IOC容器控制,實際就是你在xml檔案控制,側重於原理。 DI依賴注入:說的是建立物件例項時,為這個物件注入屬性值或其它物件例項,側重於實現。 它們是spring核心思想的不同方面的描述。 DI 和 IO