IOC與DI的區別

1、IOC介紹spring

1.IOC是控制反轉。spa

2.傳統資源查找方式:要求組件向容器發起請求,查找資源做爲迴應,容器適時返回資源。xml

3.IOC查找方式:容器會主動將資源提供給它所管理的組件,組件只須要選擇一個合適的方式來接收資源,也被稱爲查找的被動式。對象

4.建立對象實例的控制權從代碼控制剝離到IOC容器控制(以前的寫法,由程序代碼直接操控使用new關鍵字),實際就是你在xml文件控制,控制權的轉移是所謂反轉,側重於原理。資源

 

2、DI介紹容器

1.DI是依賴注入原理

2.IOC的另外一種表達方式:組件以一些預先定義好的方式(如:setter方法)接收來自容器的資源注入。依賴注入

3.相對於IOC而言,這種表述更加直接。請求

4.建立對象實例時,爲這個對象注入屬性值或其它對象實例,側重於實現。程序

 

屬性注入(最經常使用)

1.經過set方法注入Bean的屬性值或依賴的對象。

2.name屬性:制定Bean屬性set方法後的屬性名。

3.value屬性值:能夠使(value)子節點指定屬性值。

 

構造器注入

1.經過構造器注入Bean屬性值或依賴對象,它保證Bean實例在實例化後能夠使用。

2.構造器注入在<constractor-arg>同樣。

 

3、區別

1.它們是spring核心思想的不一樣方面的描述。

2.依賴注入和控制反轉是對同一件事情的不一樣描述,從某個方面講,就是它們描述的角度不一樣。

依賴注入是從應用程序的角度在描述,能夠把依賴注入描述完整點:應用程序依賴容器建立並注入它所須要的外部資源;

而控制反轉是從容器的角度在描述,描述完整點:容器控制應用程序,由容器反向的嚮應用程序注入應用程序所須要的外部資源。

相關文章
相關標籤/搜索