CGLib与JDK实现动态代理的区别

最主要的区别:
1.JDK是采用读取接口的信息
2.CGLib覆盖父类方法
3.JDK Proxy 对于用户而言,必须要有一个接口实现,目标类相对来说复杂 
4.CGLib 可以代理任意一个普通的类,没有任何要求
5.CGLib 生成代理逻辑更复杂,效率,调用效率更高,生成一个包含了所有的逻辑的FastClass,不再需要反射调用 
6.JDK Proxy生成代理的逻辑简单,执行效率相对要低,每次都要反射动态调用

共同的目的:都是生成一个新的类,去实现增强代码逻辑的功能

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