標籤: ioc
spring
框架interceptor
程式設計aop
2011-03-21 22:53
10803人閱讀收藏
舉報
【spring】(17)
ioc控制反**說的是建立物件例項的控制權從**控制剝離到ioc容器控制,實際就是你在xml檔案控制,側重於原理。
di依賴注入:說的是建立物件例項時,為這個物件注入屬性值或其它物件例項,側重於實現。
它們是spring核心思想的不同方面的描述。
di 和 ioc
di和ioc是差不多的概念。
乙個重要特徵是介面依賴,是把物件關係推遲到執行時去確定.
di是乙個初始化例項的過程,分為三種
1.setter based
2.constructor based
3.inte***ce based,
在spring 中就是應用前兩種;但又不僅僅是初始化例項,而且是運用介面的概念去實現這種注入依賴。靜態地看,只是依賴乙個介面,但實際執行起來,是依賴乙個實現了該 介面的具體類。
ioc就是面向介面程式設計的應用
1.乙個通常的做法(非面向介面程式設計的方法),物件a依賴物件b,b會作為a的屬性,可以理解為a直接控制b;
2.ioc的做法,物件a依賴於介面c,而不直接依賴於實現了介面c的b,也就是a不能直接控制是哪個具體實現了c的b去做相應的事情,而是由我們控制可以由哪個實現了介面c的b去處理,也就是控制反過來了,是由b來決定了,而不是由a,實現就是面向介面程式設計。
aop
aop是動態**的應用,將具體業務和相應的其它方面(比如日誌,許可權之類的)劃分開來,業務不會知道還有沒有其它的功能來輔助,需要的話我就給他加上乙個配置就可以,而不用去修改業務**。
原先是這個樣子 {
//日誌
//許可權
//業務**
} 現在
{ //業務**
}而許可權和日誌則寫在其它的類advice中,只要在配置中說明在呼叫業務方法時(或前,或後,或別的),呼叫一下advice就ok了。很容易把乙個方面,比如許可權或日誌從業務**中剝離出來。
在spring中,實現aop的流程如下:
1.定義業務介面
2.定義業務實現類
3.定義interceptor注入類
4.配置bean,設定class為proxyfactorybean
設定其三個屬性1.)proxyinte***ces為1
2.)interceptornames為3
3.)target為2
spring框架 IOC控制反轉
spring的核心機制 ioc,通常被稱為控制反轉,是一種設計思想,對於某個具體的物件而言,以前是它控制其他物件,現在是所有物件都被spring控制,所以這叫控制反轉。ioc的乙個重點是在系統執行中,動態的向某個物件提供它所需要的其他物件。這一點是通過di dependency injection,...
Spring框架(二)IOC控制反轉
現階段裡隨著框架的深入式學習,環境的編寫越來越多,相反程式碼卻逐步縮減 匯入核心容器的四個jar包外加乙個日誌jar 到了spring這裡嘞,依然躲不過 xml 的對映,相比於mybatis環境的 dtd,spring則是改換成了dtd公升級版的 schma,從而更具擴充套件性。就像下面的一段xml...
spring中IOC控制反轉
ioc 控制反轉 意思就是將物件的建立權力交給spring 提前在spring容器中構建好了spring物件,如此我們可以通過spring 容器直接呼叫getbean name屬性或者id名稱 獲取對應的物件 將來我們可以從classpath目錄下載入到我們的spring主配置檔案.凡是交給spri...