博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
探秘Spring AOP (八) Spring AOP 实现原理 3
阅读量:6094 次
发布时间:2019-06-20

本文共 1382 字,大约阅读时间需要 4 分钟。

hot3.png

探秘Spring AOP

一、Cglib 动态代理实现

  • 1、代理类
import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;public class DemoMethodInterceptor implements MethodInterceptor {    @Override    public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {        System.out.println("before  in cglib");        Object res = null;        try {            res = methodProxy.invokeSuper(obj,args);        } catch (Exception e) {            System.out.println("ex "+ e);            throw e;        } finally {            System.out.println("after  in cglib");        }        return res;    }}
  • 2、客户端调用方式
import cn.evchar.proxy.aop.RealSubject;import cn.evchar.proxy.aop.Subject;import net.sf.cglib.proxy.Enhancer;public class Client {    public static void main(String[] args) {        Enhancer enhancer = new Enhancer();        // 目标对象        enhancer.setSuperclass(RealSubject.class);        // 织入代码        enhancer.setCallback(new DemoMethodInterceptor());        // 生成 代理类        Subject subject = (Subject) enhancer.create();        subject.hello();        subject.request();    }}

二、Cglib 与JDK 动态代理比较

1、JDK只能针对有接口的类的接口方法进行动态代理

2、Cglib基于继承来实现代理,无法对static,final 类进行代理

3、Cglib基于继承来实现代理,无法对private,static 方法进行代理

4、反之JDK 不能对private 进行代理

三、Spring对两种实现选择

输入图片说明

输入图片说明

转载于:https://my.oschina.net/u/3136594/blog/1556218

你可能感兴趣的文章
iOS知识小集·设置userAgent的那件小事
查看>>
移动端架构的几点思考
查看>>
Tomcat与Spring中的事件机制详解
查看>>
Spark综合使用及用户行为案例区域内热门商品统计分析实战-Spark商业应用实战...
查看>>
初学者自学前端须知
查看>>
Retrofit 源码剖析-深入
查看>>
nodejs express
查看>>
企业级负载平衡简介(转)
查看>>
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
iOS13-适配夜间模式/深色外观(Dark Mode)
查看>>
网易跟贴这么火,背后的某个力量不可忽视
查看>>
Java工程师学习指南初级篇
查看>>
华为朝向智能家庭!将从电视开始
查看>>