java面试题网

普通会员

115

帖子

83

回复

167

积分

楼主
发表于 2019-09-27 12:16:10 | 查看: 5100| 回复: 0

Spring的两种代理JDK和CGLIB的区别浅谈

Spring的两种代理JDK和CGLIB的区别浅谈
Java 动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用 InvokeHandler 来处理。
而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。
1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP
2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP
3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换 


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1371_1_1.html


java面试题交流群:327440556

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018