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