博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Spring实战】—— 9 AOP环绕通知
阅读量:6222 次
发布时间:2019-06-21

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

假如有这么一个场景,需要统计某个方法执行的时间,如何做呢?

  典型的会想到在方法执行前记录时间,方法执行后再次记录,得出运行的时间。

 

如果采用Spring的AOP,仅仅使用前置和后置方法是无法做到的,因为他们无法共享变量。这样通过环绕通知,就可以快捷的实现。

  首先在切面通知类中声明环绕通知类:

public void watchPerformance(ProceedingJoinPoint joinpoint){        try{            System.out.println("begin!");            long start = System.currentTimeMillis();                        joinpoint.proceed();                        long end = System.currentTimeMillis();            System.out.println("end!        performance took "+(end-start)+" milliseconds");        }catch(Throwable e){            System.out.println("eee!We want our money back!");        }    }

  在bean.xml配置文件中配置aop:around,锁定方法:

  这样执行的结果如下:

The audience is taking their seats.The audience is turning off their cellphonesbegin!Instrumentalist age:25Playing Jingle Bells:TOOT TOOT TOOTCLAP CLAP CLAPend!        performance took 95 milliseconds

  因此可以看出AOP执行的过程如下:

  before()  around()  执行方法()  after/throw()  around()
本文转自博客园xingoo的博客,原文链接:,如需转载请自行联系原博主。
你可能感兴趣的文章
EaseType 缓动函数
查看>>
Unity VR全景漫游
查看>>
【pycharm】pycharm上安装tensorflow,报错:AttributeError: module 'pip' has no attribute 'main' 解决方法...
查看>>
Oracle RAC的五大优势及其劣势
查看>>
Android中的Service使用
查看>>
设计模式——单例模式
查看>>
python 教程 第一章、 简介
查看>>
jQueryUI Repeater 显示批处理行进度 - JQueryElement [9]
查看>>
Egit的merge合并冲突具体解决方法
查看>>
cacert.pem
查看>>
NFS安装使用--Ubuntu
查看>>
c 语言 转义字符 以及类型转换
查看>>
winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息
查看>>
Windows服务设置
查看>>
解决intellij idea新建maven项目,加载archetype慢的问题
查看>>
Android发送短信验证码
查看>>
oracle 锁的介绍 (转)
查看>>
简单实现C#生成XML文件代码
查看>>
54、用尽量多的方法实现单例模式
查看>>
Django之jsonp跨域请求原理
查看>>