cglib 和jdk 動態代理

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

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

  • cglib動態代理是利用asm開源包,
    • 對代理對象類的class文件加載進來,
    • 經過修改其字節碼生成子類來處理。
    • 惟一須要注意的是,CGLib不能對聲明爲final的方法進行代理,
      • 由於CGLib原理是動態生成被代理類的子類。
相關文章
相關標籤/搜索