首頁 > Java > java教程 > JDK動態代理和CGLIB區別

JDK動態代理和CGLIB區別

angryTom
發布: 2020-02-17 16:34:34
原創
4287 人瀏覽過

JDK動態代理和CGLIB區別

JDK動態代理程式和CGLIB區別

#1、JDK動態代理:

##利用攔截器(攔截器必須實作InvocationHanlder)加上反射機制產生一個實作代理介面的匿名類,

在呼叫具體方法前呼叫InvokeHandler來處理。

(相關影片教學分享:

java影片教學

#2、CGLiB動態代理程式:

利用ASM開源包,對代理物件類別的class檔案載入進來,透過修改其字節碼產生子類別來處理。

3、JDK動態代理程式和CGLIB字節碼產生的差別?

1、JDK動態代理只能對實作了介面的類別產生代理,而不能針對類別。

2、CGLIB是針對類別實作代理,主要是對指定的類別產生子類,覆寫其中的方法,並覆寫其中方法實作增強,但是因為採用的是繼承,所以該類別或方法最好不要宣告成final,對於final類別或方法,是無法繼承的。

更多Java相關教學課程,請造訪PHP中文網,

java教學專欄!

以上是JDK動態代理和CGLIB區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板