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

JDK動態代理和CGLIB區別

angryTom
angryTom原創
2020-02-17 16:34:344272瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn