如何拦截Spring MVC序列化响应?

How to intercept Spring MVC serialized response?

我想在请求结束时拦截 Spring servlet 响应。我的意思是,我想做的是记录服务响应,即 json 哪些服务 returns 和 statusCode。这就是我要记录的全部内容。

为此,我已经尝试过像这样使用 HandlerInterceptorAdapter

public class ResponseLoggerInterceptor
    extends HandlerInterceptorAdapter {

    private static final Logger LOGGER = LoggerFactory.getLogger(ResponseLoggerInterceptor.class);

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
        ModelAndView modelAndView) throws Exception {
        LOGGER.info("Intercepted");
        super.postHandle(request, response, handler, modelAndView);
    }

}

那个"handler"对象是对象respose,但是没有序列化。你知道我必须在哪里以及如何拦截最后的 servlet 响应吗?提前致谢

您将需要一个 'HttpResponse' 对象 并且会建议您使用 'afterCompletion' 方法