怎么aop中实现记录请求访问时间:用ThreadLocal
来源:互联网 发布:iphone透明屏幕软件 编辑:程序博客网 时间:2024/05/21 22:57
package com.example.demo.aop;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;import java.util.Arrays;import java.util.logging.Logger;/** * Create by szw on 2017/11/29 17:22 *//** * 切面 */@Aspect@Componentpublic class WebLogAspect { private Logger logger = Logger.getLogger(String.valueOf(getClass())); ThreadLocal<Long> startTime = new ThreadLocal<>(); /** * 切点表达式 */ @Pointcut("execution(public * com.example.demo.web..*.*(..))") public void webLog(){}; /** * 前置通知 */ @Before("webLog()") public void doBefore(JoinPoint joinPoint)throws Throwable { /** * 接收到请求,记录请求内容 */ startTime.set(System.currentTimeMillis()); ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); /** * 记录下请求内容 */ logger.info("URL:"+request.getRequestURL().toString()); logger.info("HTTP_METHOD:" + request.getMethod()); logger.info("IP:"+request.getRemoteAddr()); logger.info("CLASS_METHOD:" + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName()); logger.info("ARGS:" + Arrays.toString(joinPoint.getArgs())); logger.info("SPEND TIME : " + (System.currentTimeMillis() - startTime.get())); } /** * 返回后通知 * @param ret * @throws Throwable */ @AfterReturning(returning = "ret",pointcut = "webLog()") public void doAfterReturning(Object ret) throws Throwable{ /** * 处理完请求,记录返回内容 */ logger.info("RESPONSE:"+ret); }}
阅读全文
0 0
- 怎么aop中实现记录请求访问时间:用ThreadLocal
- 记录上次访问时间
- 记录用户上次访问时间的代码实现
- JavaScript中AOP的实现和日志记录
- SpringBoot AOP 记录WEB请求日志
- SpringBoot AOP 记录WEB请求日志
- SpringBoot AOP 记录WEB请求日志
- SpringBoot 中Aop处理请求
- 从头认识Spring-3.2 简单的AOP日志实现-需要记录方法的运行时间
- 从头认识Spring-3.2 简单的AOP日志实现-需要记录方法的运行时间
- Spring AOP实现日志记录
- Spring AOP实现日志记录
- Spring-AOP实践 - 统计访问时间
- 使用ThreadLocal与JDK动态代理 实现事务AOP管理
- 记录您上次访问时间
- cookie记录上次访问时间
- 用 aop 记录日志
- GWT中实现跳转及不同entrypoint怎么互相访问
- 用c语言实现字符串倒序的几种情况
- 各种xlsx转换程Csv
- 静音去除的问题
- 机器学习算法练习之(一):Python实现logistic回归
- 使用Git Submodule管理子模块
- 怎么aop中实现记录请求访问时间:用ThreadLocal
- 3. JNI Functions
- Java树形菜单_轻量级js树形插件_jsTree树形插件
- Java---发送HTTPS请求
- 如何将python3.6软件的py文件打包成exe程序
- 初次运行 Git 前的配置
- win8.1 or win server 2012 安装python3.5以上导致Error 0x80240017
- C++_运算符重载的注意事项
- 【安全牛学习笔记】SQLMAP自动注入-REQUEST