• 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;
        }
        
    }
  • 相关阅读:
    DockerCompose安装与快速体验
    Nginx:Docker部署与负载均衡开发实践
    JAVA基础:反射基础
    JVM:类加载机制
    JAVA基础:注解应用示例
    JAVA基础:注解机制
    JAVA并发(五):关键词final
    JAVA并发(四):关键词volatile
    Linux虚拟机配置作为旁挂路由器
    Linux起不来,如何修复
  • 原文地址:https://www.cnblogs.com/eason-d/p/11547293.html
Copyright © 2020-2023  润新知