簡單理解什麼是Spring中的IOC控制反轉和DI依賴注入

IOC :Inversion of Control 控制反轉
DI : dependency Injection 依賴注入

咋一聽,控制反轉、依賴注入,似乎很高大上的名字,概念比較抽象,但其實慢慢分析,轉換成自己的話也不難理解:

IOC的理解:

在原始社會的時候,我們需要自己生火、自己挖井。這個時候主動權在自己手裏。隨着時代的發展我們現在有燃氣公司和水利公司。我們現在想喝水直接扭水龍頭水就流出來了,但是水這個來源的控制權交給自來水公司了,這個過程稱之爲控制反轉

對於Spring來說,以前自己創建的對象UserService service = new UserServiceImpl(),
service.xxx()
而現在,對象的創建交給Spring工廠,用的時候去工廠中獲取,
ClassPathXmlApplicationContext ac = new …;

從之前自己創建對象,到現在交給Spring工廠創建對象,包括給屬性賦值也交給Spring工廠來完成,這個由我們自己完成一些事情轉移到Spring框架完成這些事情的過程,Spring稱之爲控制反轉(IOC)

在這裏插入圖片描述
DI (依賴注入):

如果我們站在spring工廠的角度,工廠創建需要的對象,並且還可以給程序員中的類的屬性賦值,對象由工廠創建,最終由程序員使用,這就是spring的依賴注入
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章