package com.qxueyou.scc.base.handler; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 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.springframework.core.annotation.Order; import org.springframework.stereotype.Component; @Order(80) @Aspect @Component public class PerformanceMonitor { private static final Logger logger = LogManager.getLogger("PerformanceMonitor"); @Pointcut("execution(* com.iqtogether.qxueyou..*Service.*(..))") public void pointCutMethod() { } @Around("pointCutMethod()") public Object doAround(ProceedingJoinPoint pjp) throws Throwable { long begin = System.currentTimeMillis(); Object o = pjp.proceed(); long end = System.currentTimeMillis(); logger.debug("{}:{}",pjp.getTarget().getClass()+"."+pjp.getSignature().getName(),(end-begin)); return o; } }