SpringBootでAOPを使ってsql消耗を監視します。
5630 ワード
原文:http://blog.csdn.net/eacter/article/details/56016126
aop依存を追加
aop依存を追加
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-aopartifactId>
dependency>
1 2 3 4 写面類package com.mycompany.financial.nirvana.core.aspect;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.Arrays;
/**
* aop Mapper
* Created by me on 2017/2/20.
*/
@Aspect
@Component
public class MapperAspect {
private static final Logger logger = LoggerFactory.getLogger(MapperAspect.class);
@AfterReturning("execution(* com.mycompany.financial.nirvana..*Mapper.*(..))")
public void logServiceAccess(JoinPoint joinPoint) {
logger.info("Completed: " + joinPoint);
}
/**
* com.caiyi.financial.nirvana..*Mapper public
*/
@Pointcut("execution(* com.mycompany.financial.nirvana..*Mapper.*(..))")
private void pointCutMethod() {
}
/**
*
* @param pjp
* @return
* @throws Throwable
*/
@Around("pointCutMethod()")
public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
long begin = System.nanoTime();
Object obj = pjp.proceed();
long end = System.nanoTime();
logger.info(" Mapper :{},
:{},
:{} ,\r
:{} ",
pjp.getSignature().toString(), Arrays.toString(pjp.getArgs()),
(end - begin), (end - begin) / 1000000);
return obj;
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55