Spring中到底什麼是控制反轉

2021-07-11 18:14:07 字數 757 閱讀 9869

從接觸spring框架開始,控制反轉這個名詞也不算陌生了,一直模模糊糊沒用弄清楚它真正的含義,知道今天算是比較清楚地明白了。

講spring中的控制反轉,我們先要從乙個例子說起:

比如乙個類a中,需要用到另乙個類b的方法,那麼我們就要在a中例項化b,然後呼叫b的方法。**如下:

class a

假設,我們還有c類,d類等。他們也都要用到b的方法,同樣地他們也需要例項化b,然後呼叫b的方法。如果b的例項化是乙個十分消耗系統資源的過程,比如資料庫連線等。那麼這樣每次乙個類中需要呼叫b的方法,就要例項化b一次,這將是乙個非常消耗系統資源的過程。

在spring框架中是怎麼做的呢?

spring框架控制反轉我是這樣理解的,我們每次使用spring框架不是要配置xml檔案,這個xml配置bean的id和class。spring中預設的bean為單例項模式,而且通過bean的class,通過反射機制可以建立這個例項,因此,spring框架通過反射替我們建立好了例項並且替我們維護他們。a需要引用b類,在xml我們通過構造器或者是屬性把b注入到a中,

其實就是spring框架,把b例項的引用傳給了a的成員變數。

讀了上面你就會明白,之前需要在a類來負責建立b的例項,現在建立的工作交給了spring框架,然後spring框架類注入例項的引用。建立物件的責任的轉移,即我們理解的控制反轉。同時,spring替我們維護b這個單例項,我們乙個新的類需要引用時,就不需要重複地例項化b類了,這也減少了系統資源的消耗。

以上就是我所理解的spring的控制反轉(依賴注入)帶來的好處。

Spring之到底什麼是IOC和DI?

什麼是ioc容器?ioc全名 inversion of control,翻譯過來就是控制反轉。什麼是控制反轉?這個是物件導向的一種設計原則,可以用來減低計算機 之間的耦合度 模組及模組之間資訊或引數依賴的程度 其中最常見的方式叫做依賴注入 依賴注入就是把本來應該在程式中有的依賴在外部注入到程式之中 ...

什麼是IoC和DI?什麼是依賴注入和控制反轉?

這東西,簡單一點說得清楚就對了。di dependency injection,依賴注入 依賴注入的概念就是將物件交給spring容器託管,要用的時候由spring容器注入到類中去用,spring是容器通過xml來宣告物件,另外,spring中的dao 資料訪問物件 介面 和dao.impl imp...

到底什麼是 O R Mapper

一次和乙個群裡面的朋友聊天,有人說最近發現了新的設計資料庫方法,就是把資料庫的列和物件屬性一一對應,這樣設計很方便。我說寒,那有這麼容易的,實際情況複雜去了,怎麼能一一對應。原文 http dot junkies.weblog seichert posts 4677.aspx 讓我們從o r開始。字...