spring對aop的支援
1、如果目標物件實現了介面,預設情況下會採用jdk的動態**實現aop
2、如果目標物件實現了介面,可以強制使用cglib實現aop
3、如果目標物件沒有實現了介面,必須採用cglib庫,spring會自動在jdk動態**和cglib之間轉換
如何強制使用cglib實現aop?
* 新增cglib庫,spring_home/cglib/*.jar
* 在spring配置檔案中加入
jdk動態**和cglib位元組碼生成的區別?
* jdk動態**只能對實現了介面的類生成**,而不能針對類
* cglib是針對類實現**,主要是對指定的類生成乙個子類,覆蓋其中的方法
因為是繼承,所以該類或方法最好不要宣告成final
例項如下:
(1):實現類:
spring學習筆記(4) spring事務管理
對事務的理解 事務是指修改資料庫資料時,需要滿足所有的操作要滿足一致性,要麼全都操作,要麼全都不操作。例如,當我買乙個商品時,大致的步驟如下 1.資料庫中商品的數量減一 2.我的賬戶餘額減去商品的 當執行到第二步時,若發現我的餘額不夠支付該商品,本次購買便失敗,系統應該恢復原來的商品數量 即需要回滾...
spring學習筆記
spring中兩個十分重要的概念 ioc di aop 1.ioc di inverse of control dependence injection ioc 控制反轉,看起來比較牛b,說起來十分簡單。就是不使用傳統的將類的依賴關係用硬編碼來維護的方式,而是讓容器來管理類之間的依賴,依賴關係在全在...
Spring 學習筆記
實現ioc的兩種方式 dependency injection 和 service locator 關於依賴注入 依賴注入指的是,當您在a物件內部需要b物件的某個功能時,a就依賴於b,您可以直接在a內部例項化b,但日後要修改就麻煩些。如果您不直接在a內部例項化b,而是通過ioc將乙個b例項從外部設定...