《四》Aop攔截器調用的實現

一、JdkDynamicAopProxy的invoke攔截

  • JdkDynamicAopProxy的invoke方法作爲proxy對象的回調函數被觸發,對proxy對象的代理設置是在invoke方法中完成的,包括獲取目標對象,攔截器鏈。
  • 創建了ReflectiveMethodInvocation對象來完成對aop實現的封裝,來完成一個完整的攔截器鏈對目標對象的攔截過程:攔截器鏈中攔截器配置、逐個運行攔截器鏈的攔截增強,直到對目標方法運行。
    在這裏插入圖片描述
    在這裏插入圖片描述

二、CglibAopProxy的intercept攔截

CglibAopProxy的intercept回調方法的實現跟JdkDynamicAopProxy回調實現極爲相似,如圖:
在這裏插入圖片描述
但是CglibAopProxy中是構造CglibMethodInvocation來完成攔截器調用,JdkDynamicAopProxy通過構造ReflectiveMethodInvocation對象來完成的。
有意思的是CglibMethodInvocation繼承了ReflectiveMethodInvocation,所以兩種對於攔截器調用基本一致。

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