zoukankan      html  css  js  c++  java
  • 注解 记录方法执行时间


    @GetMapping("/getAllRegion")
    @StopWatchTime
    public ResultBody getAllRegion() {

    return ResultBody.success();
    }




    @Retention(RetentionPolicy.RUNTIME)
    @Target({METHOD})
    public @interface StopWatchTime {
    String value() default "";
    //时间单位 s || ms
    String company() default "ms";
    }


    import org.apache.commons.lang3.StringUtils;
    import org.apache.commons.lang3.time.StopWatch;
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.Around;
    import org.aspectj.lang.annotation.Aspect;
    import org.springframework.stereotype.Component;

    @Aspect
    @Component
    @Slf4j
    public class StopWatchTimeAdvice {

    /*@Pointcut("@annotation(com.shopcc.bmg.compass.aspect.StopWatchTime)")
    public void methodPointcut() {}*/

    //@Around("methodPointcut() && @annotation(stopWatchTime)")
    @Around("@annotation(stopWatchTime)")
    public Object invoke(ProceedingJoinPoint thisJoinPoint, StopWatchTime stopWatchTime) throws Throwable {

    log.info("Annotation company -->{}",stopWatchTime.company());

    //方法名
    String methodName = thisJoinPoint.getSignature().getName();
    //参数
    Object[] args = thisJoinPoint.getArgs();

    StopWatch stopwatch = StopWatch.createStarted();

    //执行目标方法
    Object object = thisJoinPoint.proceed();

    stopwatch.stop();

    log.info("method name :{}({}) execute time :{}:{}",
    methodName,args, stopwatch.getTime(StringUtils.equals(stopWatchTime.company(),"ms") ? TimeUnit.MILLISECONDS : TimeUnit.SECONDS),
    stopWatchTime.company());

    return object;
    }
    }
    能力是有限的,努力是无限的。
  • 相关阅读:
    MySQL无法登录服务器解决方法
    photoshop mac版下载及破解
    静态html传参数
    flash与php 交互(as传参给php)
    PHP发送邮件类库PHPMailer的简单使用
    PHP CodeBase: 判断用户是否手机访问
    HTTP报文
    有关phpmailer的详细介绍及使用方法
    JS 实现 Tab标签切换功能
    new Option()——实现时间联动
  • 原文地址:https://www.cnblogs.com/jiahaoJAVA/p/14873928.html
Copyright © 2011-2022 走看看