AOP 的理解
瞭解 AOP 的解耦實現
====== 所以 AOP 是什麼 不改變源碼 預示 着 ------ 用的是動態代理 與 代理基於 反射
Spring 的事務 還是封裝 的是AOP 來實現 的 AOP 用的最多的就是 日誌方面
AOP優勢 : 基於一個需求的實現 : 在所有業務之前完成 日誌的控制 :
通過此案例 認識 spring AOP 實現動態代理 的jdk 與 Cglib
理解AOP的案例
djk 動態代理方式 :代理類的是匿名對象 代理類在內存裏
代理對象 proxy 要執行方法會先 執行 反射的 invoke 方法裏增強的方法
====== 01 cglib動態代理 ======
####### CGLib
CGLib實現的動態代理除了可以不通過接口實現動態代理的優點之外,還有處理速度快、效率高的優點!因爲生成代碼比Java反射的速度要快很多。
CGLib到底是什麼?其實CGLib是依靠asm字節碼處理框架實現的一個high level & 高性能 & 高質量的Code生成類庫,可以在運行時擴展Java類或者實現接口。那可不可以直接通過asm框架來實現CGLib可以實現的功能呢?當然可以,不過要想熟練運用asm框架必須對Java類文件的格式和指令集比較熟悉。CGLib對用戶隱藏了asm複雜的內部實現,提供了Developer友好、面向特定功能的實現,比如方法攔截(Interpreter)、懶加載(Lazyloader & Dispatcher)等,因此用戶不需要有Java底層類文件格式的知識就可以通過CGLib實現動態代理。