CGLib动态代理和JDK动态代理总结

CGLib动态代理和JDK动态代理总结

动态代理与静态代理相比较,最大的好处是接口中声明的所有方法都被转移到调用处理器一个集中的方法中处理,解耦和易维护

两种动态代理的区别:
     JDK动态代理:要求目标对象实现一个接口,但是有时候目标对象只是一个单独的对象,并没有实现任何的接口,         这个时候就可以用CGLib动态代理

CGLib动态代理,它是在内存中构建一个子类对象从而实现对目标对象功能的扩展
JDK动态代理是自带的,CGlib需要引入第三方包
CGLib动态代理基于继承来实现代理,所以无法对final类、private方法和static方法实现代理

Spring AOP中的代理使用的默认策略:
    如果目标对象实现了接口,则默认采用JDK动态代理
    如果目标对象没有实现接口,则采用CgLib进行动态代理
    如果目标对象实现了接扣,程序里面依旧可以指定使用CGlib动态代理

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容