• Aop @Around


    Around 记录方法耗时

    package com.gwzx.gwzxyw.log.aop;
    
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.Around;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Pointcut;
    import org.aspectj.lang.reflect.MethodSignature;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Component;
    
    @Aspect
    @Component
    public class TimeOperateLogAop {
        
        private Logger logger = LoggerFactory.getLogger(this.getClass());
        
        //声明AOP切入点,
        //1:凡是使用了@TimeOperateLogAop的方法均被拦截
        //@Pointcut("@annotation(com.gwzx.gwzxyw.log.annotation.TimeOperateLog)")
        //2:所有com.gwzx.gwzxyw.service包和所有子包里的任意类的任意方法的执行
        @Pointcut("execution(* com.gwzx.gwzxyw.service..*.*(..))")
        public void log() {
          //  System.out.println("我是一个切入点");
        }
        
        @Around("log()")
        public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
            long startTime = System.currentTimeMillis();  
            Object obj = null;
            //try {
                obj = pjp.proceed();
            /*} catch (Throwable e) {
                e.printStackTrace();
            } */
            long endTime = System.currentTimeMillis();
            MethodSignature signature = (MethodSignature) pjp.getSignature();
            String methodName = signature.getDeclaringTypeName() + "." + signature.getName();
            logger.info("方法:" + methodName + " 执行了 " + (endTime-startTime) + "ms");
            return obj;
        }
        
    }
  • 相关阅读:
    JS 正则查找与替换
    MySQL 批量插入值
    Python/Django 批量下载Excel
    Python/Django 下载Excel2007
    Python/Django 下载Excel2003
    Python3安装Scrapy
    服务器响应状态码
    细说同域-同父域-跨域
    细说Ajax跨域
    PostgreSQL学习
  • 原文地址:https://www.cnblogs.com/eason-d/p/11547293.html
Copyright © 2020-2023  润新知