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;
    }
    }
    能力是有限的,努力是无限的。
  • 相关阅读:
    linux下硬盘分区、格式化以及文件管理系统
    linux下的文档处理及tar命令
    linux文件及目录的权限管理
    linux用户和群组
    linux下mysql的安装与使用
    linux上uwsgi+nginx+django发布项目
    linux虚拟环境搭建
    linux目录文件操作
    linux基本命令
    rbac组件之权限初始化(五)
  • 原文地址:https://www.cnblogs.com/jiahaoJAVA/p/14873928.html
Copyright © 2011-2022 走看看