处理controller返回的响应消息体

42 阅读1分钟
//@Controller的类织入一个通知(增强功能)
@ControllerAdvice()
public class TestResponseBodyAdvice implements ResponseBodyAdvice {

    @Override
    public boolean supports(MethodParameter returnType, Class converterType) {
        // 使用要true,可以指定处理哪种方法比如post,get
        return true && returnType.hasMethodAnnotation(GetMapping.class)
    }

    /**
    *@param body:原controller要返回的内容
    */
    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
        if (null == body) {
            return null;
        }
        
        //TODO
        //对返回值的改造

        return body;
    }
}