一、首先說一下JDK中的動態代理:
創新互聯主營德安網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發,德安h5重慶小程序開發公司搭建,德安網站營銷推廣歡迎德安等地區企業咨詢JDK中的動態代理是通過反射類Proxy以及InvocationHandler回調接口實現的
但是,JDK中所要進行動態代理的類必須要實現一個接口,也就是說只能對該類所實現接口中定義的方法進行代理,這在實際編程中具有一定的局限性,而且使用反射的效率也并不是很高。
二、使用CGLib實現:
使用CGLib實現動態代理,完全不受代理類必須實現接口的限制,而且CGLib底層采用ASM字節碼生成框架,使用字節碼技術生成代理類,比使用Java反射效率要高。唯一需要注意的是,CGLib不能對聲明為final的方法進行代理,因為CGLib原理是動態生成被代理類的子類。
下面,將通過一個實例介紹使用CGLib實現動態代理。
1、被代理類:
首先,定義一個類,該類沒有實現任何接口,包含兩個方法。
public class ConcreteClassNoInterface { public String getConcreteMethodA(String str){ System.out.println("ConcreteMethod A ... "+str); return str; } public int getConcreteMethodB(int n){ System.out.println("ConcreteMethod B ... "+n); return n+10; } }
名稱欄目:JavaCGLib動態代理機制(全面解析)-創新互聯
鏈接分享:http://vcdvsql.cn/article24/hodce.html
成都網站建設公司_創新互聯,為您提供網站導航、品牌網站建設、外貿網站建設、營銷型網站建設、云服務器、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯