Spring 之AOP的 認識 (spring 第三篇)

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實現動態代理。

當今許多成熟的開源框架都應用了CGLib,比如AOP中的方法攔截,Hibernate中的延遲加載。由此CGLib的應用之廣泛,名氣之大可見一斑。其中Spring AOP優先選用JDK反射實現動態代理,只有在被代理對象沒有實現接口時纔會採用CGLib。究其原因,通過接口實現代理的代碼耦合度更低,而Spring是在松耦合的思想上實現的,所以通過反射實現動態代理成了AOP的默認首選 原文:https://blog.csdn.net/weixin_34248023/article/details/88118062

在這裏插入圖片描述

01springAOP 概念 與 相關術語 :

在這裏插入圖片描述

02Aop 的開發 與明確 流程

在這裏插入圖片描述

在這裏插入圖片描述在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章