SSH spring的控制反轉和依賴注入

2021-07-05 14:09:49 字數 1544 閱讀 2482

spring是乙個輕量級的容器框架,主要是為了使企業的開發變得簡單、高效。無論是從大小還是開銷來講,他都可以算是輕量級的,也是非侵入性的。

下圖是spring的框架示意圖,說到spring,就不得不提他的控制反轉(ioc,inversion of control)。

那麼他的控制反轉是如何實現的呢?

控制反轉一般有兩種型別,依賴注入(di)和依賴查詢。依賴注入應用比較廣泛。

首先來看,如果沒有使用spring,我們的一般操作是怎樣的。

client,dao和manager三個包,其中client為客戶端呼叫,userdao和usermanager為介面。

* mysql的實現類

*/public class userdao4mysqlimpl implements userdao }/*

* oracle的實現類

*/public class userdao4oracleimpl implements userdao

}業務層的實現類

public class usermanagerimpl implements usermanager 

}

客戶端呼叫方法:

public class client 

}

我們知道物件的建立過程,如果需求有變,可以進行更換。儘管可以進行修改,但始終是應用程式來管理物件之間的依賴關係,而spring的控制反轉,將這個操作交給容器管理。

di(dependency injection)

這裡說兩種di注入的方式:setter注入和構造方法注入。

1)setter注入

我們還是舉上面的例子,dao包中的內容都不需要改變,我們只需要將manager包中進行調整即可。如在usermanagerimpl類中,注入userdao。

public class usermanagerimpl implements usermanager 

....

}

配置檔案

2)構造方法注入

public class usermanagerimpl implements usermanager 

...}

將配置檔案中的usermanager的bean進行修改

當然,di還有其他的實現方式,在這裡就不介紹了,跟這兩種都很類似。

小結:通過控制反轉,我們將類與類之間的關係,物件的生成放到了配置檔案中,這樣既在一定程度上實現了解耦,也使得改變更加容易。

SSH Spring控制反轉

一 spring核心 1 ioc控制反轉 ioc inversion of control 本來是由應用程式管理的物件之間的依賴關係,現在交給了容器管理,這就叫控制反轉,即交給了ioc容器,spring的ioc容器主要使用di方式實現的。不需要主動查詢,物件的查詢 定位和建立全部由容器管理。簡單的舉...

控制反轉 依賴注入和控制反轉

依賴注入 di 和控制反轉 ioc 基本是乙個意思,因為說起來誰都離不開誰。簡單來說,a依賴b,但a不控制b的建立和銷毀,僅使用b,那麼b的控制權交給a之外處理,這叫控制反轉 ioc 而a要依賴b,必然要使用b的instance,那麼 通過a的介面,把b傳入 通過a的構造,把b傳入 通過設定a的屬性...

依賴注入和控制反轉

還是從上次機房合作驗收說起,其中乙個特別厲害的師姐提到了依賴注入和控制反轉,剛剛聽到這個的時候,感覺很熟悉,就是不知道在 看到過,想起了公尺老師說的那句話,不怕不知道,就怕不知道 不怕不知道它,就怕遇到了不知道它是什麼意思,我可是上公升到了不知道的第二個階段。廢話不說了,直奔主題吧。記得在哪見過,就...