天天看點

IOC與DI1.IOC(控制反轉)2 DI(依賴注入)

控制反轉與依賴注入

  • 1.IOC(控制反轉)
  • 2 DI(依賴注入)

1.IOC(控制反轉)

IOC(Inversion of Control)–即控制反轉,這是spring的核心,是面向對象程式設計中的一種設計原則,可以用來降低計算機的耦合程度。其中最常見的方式有依賴注入(Dependency Injection,簡稱DI),還有一種方式叫做依賴查找(Dependency Lookup)。通過控制反轉,在需要對象實體的時候,通過容器将依賴注入到對象中。

IOC是spring的核心,貫穿始終
           

IOC,對于spring架構來說,就是由spring來負責控制對象的生命周期與對象間的關系。spring所倡導的開發方式,就是所有的類都會在spring容器中登記,告訴spring是個什麼東西(類),需要什麼樣的東西(類),然後spring會在系統運作到适當的時候,把你需要的東西主動給你(進行依賴注入),同時也把你交給其他需要你的東西。所有類的建立、銷毀都由spring來控制,也就是說控制對象生命周期的不再是引用它 的對象,而是spring。對于某個具體的對象而言,以前是控制其他對象,現在是所有對象都由spring控制,是以叫做IOC控制反轉。

2 DI(依賴注入)

IoC的一個重點是在系統運作中,動态的向某個對象提供它所需要的其他對象。這一點是通過DI(Dependency Injection,依賴注入)來實作的。以前當需要一個對象時候我們需要new一個對象,在spring中,使用注解,需要一個對象的時候spring會通過反射來實作注入。程式運作過程中,客戶類不直接執行個體化具體服務類執行個體,而是客戶類的運作上下文環境或專門元件負責執行個體化服務類,然後将其注入到客戶類中,保證客戶類的正常運作。

繼續閱讀