美文网首页Java学习笔记
SpringMVC 请求体参数增强

SpringMVC 请求体参数增强

作者: 想象之中丶意料之外 | 来源:发表于2022-04-22 11:20 被阅读0次

    请求参数增强

    • 使用@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上,不在请求体里。

    相关文章

      网友评论

        本文标题:SpringMVC 请求体参数增强

        本文链接:https://www.haomeiwen.com/subject/nmngertx.html