Spring框架詳解之——AOP動態代理底層原理

1.jdk動態代理

基於接口的動態代理

提供者:JDK官方的Proxy類。

要求:被代理類最少實現一個接口

代碼實現:

1.先創建一個接口UserDao,並創建2個方法save方法和delete方法

Spring框架詳解之——AOP動態代理底層原理

2.為接口創建實現類UserDaoImpl,並實現接口中的方法

Spring框架詳解之——AOP動態代理底層原理

3.創建代理類JdkProxy實現InvocationHandler接口,並在代理類中創建代理方法creatProxy方法

Spring框架詳解之——AOP動態代理底層原理

4.創建測試方法

Spring框架詳解之——AOP動態代理底層原理

2.Cglib代理

基於子類的動態代理

提供者:第三方的CGLib,如果報asmxxxx異常,需要導入asm.jar。

要求:被代理類不能用final修飾的類(最終類)。

代碼實現:

1.先創建一個類CustomerDao,並創建2個方法save方法和delete方法

Spring框架詳解之——AOP動態代理底層原理

2.為CustomerDao創建代理類CglibProxy實現MethodInterceptor接口,並在代理類中創建代理方法creatProxy方法

Spring框架詳解之——AOP動態代理底層原理

4.創建測試方法

Spring框架詳解之——AOP動態代理底層原理

2.問題解答

這裡邊的底層原理需要大家深刻理解

有什麼不懂的可以留言評論,大家一起討論學習。

好了,這次教程到這裡就結束了!

謝謝大家支持!


分享到:


相關文章: