溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JDK動態(tài)代理和CGLIB有什么區(qū)別

發(fā)布時間:2020-04-26 15:47:40 來源:億速云 閱讀:396 作者:小新 欄目:編程語言

今天小編給大家分享的是JDK動態(tài)代理和CGLIB有什么區(qū)別,相信很多人都不太了解,為了讓大家更加了解JDK動態(tài)代理和CGLIB的區(qū)別,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會有所收獲的哦。

JDK動態(tài)代理和CGLIB有什么區(qū)別

JDK動態(tài)代理和CGLIB區(qū)別

1、JDK動態(tài)代理:

利用攔截器(攔截器必須實現(xiàn)InvocationHanlder)加上反射機制生成一個實現(xiàn)代理接口的匿名類,

在調(diào)用具體方法前調(diào)用InvokeHandler來處理。

()

2、CGLiB動態(tài)代理:

利用ASM開源包,對代理對象類的class文件加載進(jìn)來,通過修改其字節(jié)碼生成子類來處理。

3、JDK動態(tài)代理和CGLIB字節(jié)碼生成的區(qū)別?

1、JDK動態(tài)代理只能對實現(xiàn)了接口的類生成代理,而不能針對類。

2、CGLIB是針對類實現(xiàn)代理,主要是對指定的類生成一個子類,覆蓋其中的方法,并覆蓋其中方法實現(xiàn)增強,但是因為采用的是繼承,所以該類或方法最好不要聲明成final,對于final類或方法,是無法繼承的。

關(guān)于JDK動態(tài)代理和CGLIB有什么區(qū)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的參考價值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI