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()
  • 相关阅读:
    P1141零一迷宫
    P1219八皇后
    P1233木棍加工
    三 Struts2 添加返回数据
    二 Struts2 接收数据
    一 Struts2 开发流程
    12-tinyMCE文本编辑器+图片上传预览+页面倒计时自动跳转
    11-page分页原理
    10-ajax技术简介
    9-文件上传和下载
  • 原文地址:https://www.cnblogs.com/panxuejun/p/5993883.html
Copyright © 2011-2022 走看看