SpringMVC 请求体参数增强

请求参数增强

  • 使用@ControllerAdvice这个控制器增强注解,来对所有Controller进行增强(当然也可以指定包下或带有指定注解的Controller类)。
  • 增强后实现 RequestBodyAdvice 接口,完成请求体参数增强。在实现的接口中完成请求参数加工操作。
/**
 * 请求参数在加工。
 * 利用 Controller增强注解 + 实现 RequestBodyAdvice 请求完成
 * 继承 RequestBodyAdviceAdapter类,是为了方便有些方法使用spring框架默认执行。
 * RequestBodyAdviceAdapter类中,已经重写了 beforeBodyRead、afterBodyRead、handleEmptyBody这三个方法。
 * 为了方便,继承这个类后,我只需要重写自己需要的方法即可。
 */
@ControllerAdvice
public class CheckRequestBodyAdvice extends RequestBodyAdviceAdapter implements RequestBodyAdvice {
    @Override
    public boolean supports(MethodParameter methodParameter, Type type, Class<? extends HttpMessageConverter<?>> aClass) {
        System.out.println(methodParameter.getMethod().getName());
        System.out.println(type.getTypeName());
        System.out.println(aClass);
        return true;
    }

    @Override
    public Object afterBodyRead(Object body, HttpInputMessage httpInputMessage, MethodParameter methodParameter, Type type, Class<? extends HttpMessageConverter<?>> aClass) {
        System.out.println(body);
        return body;
    }
}

注意

  • 如果请求体没有内容,则拦截不到。比如:GET请求,请求参数在URL上,不在请求体里。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容