CGLib與JDK實現動態代理的區別

最主要的區別:
1.JDK是採用讀取接口的信息
2.CGLib覆蓋父類方法
3.JDK Proxy 對於用戶而言,必須要有一個接口實現,目標類相對來說複雜 
4.CGLib 可以代理任意一個普通的類,沒有任何要求
5.CGLib 生成代理邏輯更復雜,效率,調用效率更高,生成一個包含了所有的邏輯的FastClass,不再需要反射調用 
6.JDK Proxy生成代理的邏輯簡單,執行效率相對要低,每次都要反射動態調用

共同的目的:都是生成一個新的類,去實現增強代碼邏輯的功能

CGLib 有個坑,CGLib不能代理final的方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章