• 注解 记录方法执行时间



    @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;
    }
    }
    能力是有限的,努力是无限的。
  • 相关阅读:
    二维卷积层
    gluon 实现多层感知机MLP分类FashionMNIST
    gluon实现softmax分类FashionMNIST
    gluon 实现线性回归
    GPU使用
    Python迭代器和生成器
    L2范数惩罚项,高维线性回归
    多项式拟合
    模型选择,欠拟合,过拟合
    多层感知机MLP的gluon版分类minist
  • 原文地址:https://www.cnblogs.com/jiahaoJAVA/p/14873928.html
Copyright © 2020-2023  润新知