1. 程式人生 > >cglib 和jdk 動態代理

cglib 和jdk 動態代理

  • java動態代理是利用反射機制生成一個實現代理介面的匿名類,
    • 在呼叫具體方法前呼叫InvokeHandler來處理。
    • JDK動態代理只能對實現了介面的類生成代理,而不能針對類

    • CGLIB是針對類實現代理,主要是對指定的類生成一個子類,覆蓋其中的方法(繼承)

  • cglib動態代理是利用asm開源包,
    • 對代理物件類的class檔案載入進來,
    • 通過修改其位元組碼生成子類來處理。
    • 唯一需要注意的是,CGLib不能對宣告為final的方法進行代理,
      • 因為CGLib原理是動態生成被代理類的子類。