Spring之控制反轉和依賴注入

2022-09-23 11:03:10 字數 555 閱讀 1944

spring之控制反轉和依賴注入:一般的,我們要想得到乙個物件,就把它new出來。在一些複雜的系統中,乙個物件a可能依賴於物件b,c等(**表現為a類持有b,c類的物件作為a類的屬性)。

很多時候,我們並不想在a類中new出b,c的物件,這樣會增加類之間的耦合性。於是,就有了控制反轉(ioc)和依賴注入(di)的概念。控制反轉就是將物件的例項化過程交給spring框架來做,依賴注入就是將a物件所依賴的bc物件以配置檔案的形式傳遞給a物件。

以經典的web三層結構為例。我們知道,action動作類中持有service類的物件,service類中又持有dao類的物件,傳統方式如下。

如上圖所示,我們理所當然的new出所依賴的物件例項,這樣各個類之間的耦合性太強,不利於維護。spring提供了2種思想(ioc和di),將「new出物件的動作」和「產生依賴關係」的操作配置到配置檔案中。

上圖所示,原始碼中並不再出現「new」關鍵字來建立例項,而是在配置檔案(這裡是xml檔案)中用bean標籤來建立,物件之間的依賴關係則用「bean」標籤下的「property」標籤來引用。這樣一來,各個類之間的耦合性就解除了,各個類都和配置檔案打交道。

Spring之依賴注入 控制反轉

借用李剛老師書中的例子,在原始社會,人要砍柴,那麼他就要自己去製作一把斧子。這樣的方式的耦合度很高,斧子還要原材料,打磨工具等,這樣任何乙個環節的問題,都會導致其他環節的問題,那麼在 中,一旦要修改乙個類的實現時,就可能需要修改一系列的依賴。在工業社會,人要一把斧子,只需要去工廠獲取,它的實現類是對...

Spring框架介紹 l了解控制反轉依賴注入

spring是乙個輕量級框架。它可以被認為是乙個框架的框架,因為它支援各種框架,如struts hibernate tapestry ejb jsf等。從更廣泛的意義上說,框架可以定義為乙個我們可以找到各種技術問題解決方案的結構。讓我們先了解ioc和依賴注入。控制反轉 ioc 和依賴注入 控制反轉 ...

輕鬆了解Spring中的控制反轉和依賴注入

在介面中定義要注入的資訊,並通過介面來完成注入。spring不支援這種注入方式 不支援的原因是 spring聲稱其是非入侵式的 離開這個框架也能活 如果使用介面注入的話,就違背了這一原則 這裡不做 實現講解。我們先脫離spring來實現setter注入,分兩步,第一步我們先看看在常規的做法下類之間的...