zoukankan      html  css  js  c++  java
  • spring aop环绕通知

    【Spring实战】—— 9 AOP环绕通知

     

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

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

    如果采用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,锁定方法:

    <aop:around pointcut-ref="performance" method="watchPerformance"/>

      这样执行的结果如下:

    复制代码
    The audience is taking their seats.
    The audience is turning off their cellphones
    begin!
    Instrumentalist age:25
    Playing Jingle Bells:TOOT TOOT TOOT
    CLAP CLAP CLAP
    end!        performance took 95 milliseconds
    复制代码

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

      before()
      around()
      执行方法()
      after/throw()
      around()
  • 相关阅读:
    源代码的下载与编译
    Git使用入门
    搭建Android开发环境
    Android系统移植与驱动开发
    Android探索与驱动开发学与思(10)
    Android探索与驱动开发学与思(9)
    Android探索与驱动开发学与思(8)
    第七章
    第六章
    第五章
  • 原文地址:https://www.cnblogs.com/panxuejun/p/5993883.html
Copyright © 2011-2022 走看看