1. 程式人生 > >Spring AOP底層實現原理

Spring AOP底層實現原理

1、spring的AOP底層是由 JDK提供的動態代理技術 和 CGLIB(動態位元組碼增強技術)實現。
2、JDK動態代理:Jdk動態代理只針對於介面操作。
3、CGLIB:可以針對沒有介面的java類和有介面的java類。

java的jdk動態代理:

1、new的java類必須存在介面,通過一個工具類,對java類中的一些方法進行功能補充。或者說將一些公共的方法提取寫在工具類中。
2、程式碼實現:
目標類target

這裡寫圖片描述

這裡寫圖片描述

代理工具類

這裡寫圖片描述

測試程式碼

這裡寫圖片描述

cglib動態代理

1、CGLIB(Code Generation Library)是一個開源專案,cglib它可以為沒有實現介面的類做代理,也可以為介面類做代理.
2、程式碼:setCallback傳遞的引數是Callback型別,我們使用的是MethodInterceptor。

這裡寫圖片描述

測試程式碼

這裡寫圖片描述