Spring AOP原理为什么用2种实现方式?JDKProxy和Cglib

 我来答
流星一道虹
2017-01-18 · TA获得超过169个赞
知道小有建树答主
回答量:81
采纳率:0%
帮助的人:78.4万
展开全部
这个当时我自己学习了下,顺便再我的博客里面总结了一下:

Spring的两种代理JDK和CGLIB的区别浅谈:
  Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用invokeHandler类来处理;
  而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码的子类来处理。

  1>如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP;
  2>如果目标对象实现了接口,可以强制使用cglib实现AOP;
  3>如果目标对象没有实现了接口,必须采用cglib库,Spring会自动在JDK动态代理和cglib之间转换;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式