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學習筆記2
一 什麼是aop 面向切面程式設計,通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。在不影響原來功能 的基礎上,使用動態 加入自己需要的一些功能 比如許可權的驗證,事務的控制,日誌的記錄等等 移除之後,並不影響原來的功能 面向切面程式設計是通過動態 實現的,是對物件導向思想的補充。可以...
spring框架學習筆記2
springioc 1 責任鏈 我們使用mvc進行開發的時候,資料在各層之間進行傳遞,資料在業務層上構成乙個鏈條,這個鏈條成為責任鏈.2 基於責任鏈模式開發的缺點 責任鏈開發模式,我們發現層與層之間互相呼叫,造成層與層耦合性太高.3 解決的方案 spring ioc 控制反轉 4 實現 step 1...
決戰春招Spring學習筆記2
經過上次的學習和練習掌握了基於xml的ioc配置,用註解的配置不是很熟練但無傷大雅繼續往下學,以後在實戰中複習 aop為aspect oriented programming的縮寫,意為 面向切面程式設計 ioc是為了給 結耦,用反射的方式建立,降低 互相的依賴 那aop存在的意義是什麼?答 為了解...