1. 程式人生 > >cglib動態代理之原理說明

cglib動態代理之原理說明

修飾 cep 攔截器 per 創建子類 通過 回調 詳細 call

cglib采用了非常底層的字節碼技術,通過目標類的字節碼,為目標類創建子類,並在子類中用方法攔截技術,攔截所有父類方法的調用,並對攔截方法進行增強。

1)底層采用字節碼框架ASM,來轉換字節碼來生成新的類。

2)更詳細的說:代理類將目標類作為自己的父類並為每個不是final修飾的方法,創建兩個方法:

一個是與父類方法簽名相同的方法,會在該方法中通過super調用目標方法。

另一個是代理類獨有的方法,稱之為callback()回調方法,它會判斷該方法是否綁定了攔截器(實現攔截器接口MethodInterceptor的接口對象),若存在則將調用interpet方法對目標方法進行代理,也就是在前後方法添加增強邏輯。

https://blog.csdn.net/Dustin_CDS/article/details/79685620

cglib動態代理之原理說明