LogAOP计算每个接口的调用时间
来源:互联网 发布:淘宝账户永久冻结解冻 编辑:程序博客网 时间:2024/05/22 08:06
util类里添加:
package anmav.menu.utils;import common.anmav.utils.JsonUtils;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.Signature;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.context.annotation.ComponentScan;import org.springframework.context.annotation.EnableAspectJAutoProxy;import org.springframework.stereotype.Component;/** * @author Nero * @since 2017年11月9日 * */@Aspect // 声明切面@Component //声明组件@ComponentScan //组件自动扫描@EnableAspectJAutoProxy //spring自动切换JDK动态代理和CGLIBpublic class LogAOP { /** *自定义日志 */ private Logger logger = LoggerFactory.getLogger("menu-log-statics"); @Pointcut("execution (public * anmav.menu.controller..* (..))") public void methodPointCut() { } @Around("methodPointCut()") public Object doBeforeAdvice(ProceedingJoinPoint joinPoint) throws Throwable { //获取目标方法的参数信息 Object[] obj = joinPoint.getArgs(); //用的最多 通知的签名 Signature signature = joinPoint.getSignature(); //代理的是哪一个方法 String methodNmae = signature.getName(); //AOP代理类的名字 String className = signature.getDeclaringTypeName(); logger.info(className + "." + methodNmae + ", request: " + JsonUtils.objectToJson(obj)); long beginTime = System.currentTimeMillis(); Object result = joinPoint.proceed(); long endTime = System.currentTimeMillis(); logger.info(className + "." + methodNmae + ", response: " + JsonUtils.objectToJson(result)); long elapsedTime = endTime - beginTime; if (elapsedTime < 500) { logger.info(className + "." + methodNmae + ", elapsed: " + elapsedTime + "ms."); } else { logger.warn(className + "." + methodNmae + ", elapsed: " + elapsedTime + "ms."); } return result; }}pom.xml添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
结果:
阅读全文
0 0
- LogAOP计算每个接口的调用时间
- 链表的应用:计算每个作业的运行时间
- 链表的应用:计算每个作业的运行时间
- 简单函数调用 计算1-100每个数的平方
- 计算每个月的天数
- 计算每个月的统计数据
- js调用百度地图接口绘制任意多边形并获取每个点的经纬度
- ArrayList类的代理,其内部实现和ArrayList中完全相同的功能并计算每个方法运行时间。
- 88、展示Tensorflow计算图上每个节点的基本信息以及运行时消耗的时间和空间
- 计算每个单词的平均长度
- ios计算每个年月的天数
- 如何记录应用的接口访问信息(调用次数,最长时间、最短时间、平均时间等等)
- 队列应用银行排队问题模拟:计算客户的平均停留时间和等待时间以及每个客户的时间信息,两种方法实现
- 查询每个id的最新更新时间
- Xcode的每个版本发布时间
- 时间复杂度的计算
- 时间复杂度的计算
- 时间复杂度的计算
- 洛谷 [P1220] 关路灯
- 容器部署解决方案Docker详解
- Hibernate的学习之路一(概念)
- Ibatis和Mybatis的差异性
- 利用邮箱监督机器学习训练过程
- LogAOP计算每个接口的调用时间
- 1、认识HTML
- 拥塞控制分析之RCP
- selenium 定位元素
- Hibernate
- 深入分析MySQL事务隔离级别
- PCL显示函数的例子
- H5 语音合成播报功能
- 23种设计模式之-----代理模式(Proxy Pattern)