SSH Spring控制反轉

2021-07-06 07:03:38 字數 1457 閱讀 7513



一、spring核心

1、ioc控制反轉

ioc(

inversion of control

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

簡單的舉個例子,幫助大家理解什麼是控制反**

我們編碼經常new,類例項化、new出乙個物件;業務層呼叫dao層乙個類的新增方法,怎麼做?new出dao層的乙個例項,在通過該例項呼叫新增方法。這樣的做法很常見,但它存在什麼問題?說是解耦,但業務與資料層通過這種直接呼叫的方式例項化,使得兩層耦合度照樣高,如果我不需要呼叫新增方法了,或者我要在調乙個驗證資料的方法,那就不得不開啟業務層**,改改改!

控制反轉的出現,將呼叫關係由原來的程式主動查詢需要的物件、方法定位,優化為通過配置,將類的屬性、方法均配置到xml檔案中,一建立bean物件,該物件以及它存在set方法的類、屬性也一併主動建立出來,供程式使用。

所以這種物件間依賴呼叫關係由原來的程式管理變成自動管理,而提供這個自動管理的地方就是容器,容器實質也就是乙個提供服務的場所,原來沒有,放到乙個空間(容器)裡,便享有該空間所提供的服務。在這裡,這種服務便是通過配置主動建立出物件間關係。

而spring的容器--即ioc容器主要是通過依賴注入來實現的。 二、

建立乙個完整的spring demo

1、spring的依賴包配置

* spring_home/dist/spring.jar

* spring_home/lib/log4j/log4j-1.2.14.jar

* spring_home/lib/jakarta-commons/commons-logging.jar 2、

提供配置檔案 *

*log4j.properties 3、

建立dao 新增方法\manager業務

public class usermanagerimpl implements usermanager 

public void setuserdao(userdao userdao)

}

4、配置xml

5、編寫客戶端,讀取xml檔案,獲得bean id,建立bean物件

public class client 

}

通過以上demo,客戶端一執行便可呼叫dao層adduser方法,這就是spring中控制反轉的實現,在業務層注入dao,同時配置好,再建立beanfactory獲得該bean id,建立出bean物件,也就是業務層usermanager物件,呼叫add,便可通過set方法,建立出dao例項,執行真正的add。如果需要修改,則直接改配置中,注入dao的標籤class即可,**邏輯完全不用動。是不是很強~

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

spring是乙個輕量級的容器框架,主要是為了使企業的開發變得簡單 高效。無論是從大小還是開銷來講,他都可以算是輕量級的,也是非侵入性的。下圖是spring的框架示意圖,說到spring,就不得不提他的控制反轉 ioc,inversion of control 那麼他的控制反轉是如何實現的呢?控制反...

SSH Spring入門必讀

j2ee的課程接近尾聲,今天老師開始講了ssh框架中傳說中的spring,在介紹這個spring之前,先來對之前的知識進行乙個系統的總結。首先,ssh框架必懂的struct2,在struct裡面,我們只要是學習如何使用 把介面的值利用getmodel 等方法來傳遞給action裡面需要用到的屬性值,...

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

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