Spring中的Ioc DI到底是啥

2021-09-28 16:20:00 字數 806 閱讀 9348

我們都知道,spring是一款輕量級的ioc框架,spring的核心就是ioc和di,並通過倆者解耦。

那麼,ioc、di呢?

ioc 控制反轉

ioc(inversion of control)控制反轉,這裡的控制指把控制權從應用程式中剝離出來。ioc它可以把建立物件和查詢依賴物件的許可權交給ioc容器控制,而不是傳統的由這些物件的使用方(消費者)進行建立初始化操作。ioc是一種讓服務消費者不直接依賴於服務提供者的元件設計方式,是一種減少類與類之間依賴的設計原則。

為什麼ioc叫控制反轉呢,反轉了什麼呢?傳統的程式都是消費者主動建立物件,現在容器幫我們查詢及注入依賴物件,而消費者只是被動的接受依賴物件,此為反轉。

di 依賴注入

di(dependency injection)依賴注入,指容器複製建立和維護物件之間的依賴關係,而不是通過物件本身複製自己的建立和解決自己的依賴。控制反轉是通過依賴注入實現的。

其實ioc和di在spring中是乙個等同的概念。如果非要咬文嚼字的話,控制反轉是依賴注入的一部分,或者說是同乙個行為偏重點不同的倆個稱呼。

他們是從不能的角度闡述同乙個功能,描述的物件不同而已。依賴注入是從程式本身來說,控制反轉是從容器來說的。

申明beand的註解

@comonet 沒有明確宣告角色的功能

@service 在業務邏輯層使用

@repository 在資料操作層使用

@controller 在表現層(springmvc中)使用,其中restcontrolelr也是一樣的含義

以上四個註解在功能是是相同的,他們唯一的區別只是從字面上了區分申明的bean的功能。

Spring的IOC DI以及Bean例項化方式

2 di 依賴注入 在spring建立物件的過程中,物件所依賴的屬性通過配置注入物件中。public class bean1 public void show 使用beanfactory來獲取bean1 test public void test1 test public void test2 te...

Spring核心技術 IOC,DI

ioc 控制反轉 英文全稱 inversion of control di 依賴注入 英文全稱 dependency injection ioc和di其實是講的乙個東西 封裝對物件的例項化 原先 對於物件的建立,通過new進行例項化 等同於自己找媳婦 在程式中被稱為依賴 而現在 統一通過 父母 be...

總結一下 Spring的IOC DI

國慶節剛過,應一些朋友的提問,總結一下spring中ioc也即di的通俗理解。wm5920 解釋 ioc控制反 說的是建立物件例項的控制權從 控制剝離到ioc容器控制,實際就是你在xml檔案控制,側重於原理。di依賴注入 說的是建立物件例項時,為這個物件注入屬性值或其它物件例項,側重於實現。依賴就是...