zoukankan      html  css  js  c++  java
  • spring mvc 通过拦截器记录请求数据和响应数据

    spring mvc 能过拦截器记录请求数据记录有很多种方式,主要有以下三种:

    1:过滤器

    2:HandlerInterceptor拦截器

    3:Aspect接口控制器

    但是就我个人所知要记录返回的数据,只能通过Aspect处理,以下是实现此需要的代码

    package com.qmtt.config;
    
    import java.util.Arrays;
    
    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.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.context.annotation.Configuration;
    
    import com.qmtt.tools.JsonUtils;
    
    /***
     * 
     * @author wujf 拦截所有控制器的返回,记录响应报文
     */
    @Aspect
    @Configuration
    public class QmttAspect {
        private static final Logger log = LoggerFactory.getLogger(QmttAspect.class);
    
        public QmttAspect() {
        }
    
        // 不能拦截@RequestMapping,这样会导致swagger无法使用
        // @Pointcut("@annotation(org.springframework.web.bind.annotation.RequestMapping)")
        @Pointcut("execution(public * com.qmtt.controller.*.*(..))")
        public void pointCutMethod() {
        }
    
        // 声明环绕通知
        @Around("pointCutMethod()")
        public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
            String controller = pjp.getTarget().getClass().getSimpleName();
            String method = pjp.getSignature().getName();
            String args = Arrays.toString(pjp.getArgs());
            log.info("<{}.{}>,请求参数:{}", controller, method, args);
            Object ret = pjp.proceed();
            log.info("响应数据:{}", JsonUtils.toJsonString(ret));
            return ret;
        }
    }

    有追求,才有动力!

    向每一个软件工程师致敬!

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    ASP.NET很容易的图片裁剪功能
    ASP.NET 你肯定会用到的图片裁剪功能,可按长度或宽度裁剪,也能绘制一个更大图
    最简单的设置Title和关键字方法,方便你做搜索引擎检索
    ASP.NET 图片压缩,等比压缩图片
    不安装MVC3环境在IIS7上部署MVC3项目
    移动端布局(rem+dpr)
    H5网页打开APP
    第二次作业
    第四次
    第三次作业
  • 原文地址:https://www.cnblogs.com/wujf/p/8337832.html
Copyright © 2011-2022 走看看