Spring 控制反轉IoC

2021-10-01 12:49:36 字數 1141 閱讀 7931

1,ioc理論背景

在使用物件導向語言開發的系統中,不同物件之間相互協作得以實現業務邏輯。就像是一塊機械手錶,通過不同齒輪的協作,讓時針、分針、秒針精確的執行。如果乙個齒輪發生故障,那麼整塊手錶的功能就要受到影響。手錶齒輪之間的關係和軟體系統中物件的耦合關係很相似。物件之間的耦合關係是必要的,也是無法避免的,它是物件間協同工作的基礎。

伴隨著企業級應用的規模的擴大,物件與物件間的關係越來越複雜,經常會出現物件間的多重依賴關係。物件間耦合度過高,必然會牽一髮而動全身,對系統的擴充套件與維護帶來嚴重的問題。降低系統之間、模組之間、物件之間的耦合度是軟體工程永遠追尋的目標之一。

為了解決物件之間的耦合問題,軟體專家michael mattson提出了ioc理論。很多j2ee專案採用了ioc框架產品spring。

2,什麼是控制反轉

ioc是inversion of control的縮寫,多數書籍翻譯成控制反轉,也有的叫做「控制反向」或「控制倒置」。

2023年michael mattson在一篇討論物件導向的框架中首次提出ioc這個概念。ioc理論的大致觀點是:借助第三方實現物件之間關係的解耦。

如上圖所示,由於引入第三方(ioc容器),使得物件a、b、c、d之間沒有了耦合關係,齒輪的轉動全部依靠ioc容器操控。ioc容器成為整個系統的核心,它起到了一種類似「粘和劑」的作用。

在沒有ioc容器之前,物件a依賴於物件b,物件a在執行過程中需要用到b物件,那麼a就要主動去建立和使用物件b,控制權在a手中。有了ioc容器之後,ioc容器會建立乙個b物件注入到物件a需要的地方。建立物件由主動變為被動,控制權反轉了,這就是「控制反轉」的含義。控制反轉又被叫做依賴注入。

3,ioc的優缺點

優點:實現元件之間解耦,提高了程式的靈活性和可維護性。

缺點:由於ioc容器生成物件時通過反射方式,在執行效率上有一定的損耗。

參考:spring的ioc原理[通俗解釋一下]

Spring之控制反轉(IOC)

目錄 0.面向介面程式設計思想 1.依賴倒置原則與好萊塢原則 2.控制反轉 3.依賴注入 4.spring是如何實現依賴注入的?4.1 beanfactory 4.2 factorybean 面向介面程式設計 不針對實現程式設計,針對超型別程式設計。超型別包括繼承和多型。而依賴倒置原則與好萊塢原則可...

spring框架 IOC控制反轉

spring的核心機制 ioc,通常被稱為控制反轉,是一種設計思想,對於某個具體的物件而言,以前是它控制其他物件,現在是所有物件都被spring控制,所以這叫控制反轉。ioc的乙個重點是在系統執行中,動態的向某個物件提供它所需要的其他物件。這一點是通過di dependency injection,...

spring中IOC控制反轉

ioc 控制反轉 意思就是將物件的建立權力交給spring 提前在spring容器中構建好了spring物件,如此我們可以通過spring 容器直接呼叫getbean name屬性或者id名稱 獲取對應的物件 將來我們可以從classpath目錄下載入到我們的spring主配置檔案.凡是交給spri...