Spring控制器 - 记录请求和响应主体

时间:2014-06-11 09:38:19

标签: java spring spring-mvc spring-aop

我有一个Spring应用程序,可以与移动设备交换JSON。 Spring控制器看起来像这样:

@RequestMapping(value = "/register", method = RequestMethod.POST, headers = {"Content-type=application/json"})
public String register(@RequestBody @Valid UserRegistrationRequest urf, BindingResult bindingResult) {
    return toJson(someResponse);
}

我想知道,记录http请求正文和响应正文的最佳方法是什么? 目前,我有自定义json消息转换器,并在从json创建bean之前记录请求体。我使用CustomTraceInterceptor来记录响应主体。不幸的是,CustomTraceInterceptor不允许记录请求正文。

任何有关更好解决方案的建议都将受到高度赞赏!

提前谢谢。

1 个答案:

答案 0 :(得分:3)

扩展HandlerInterceptorAdapter,并覆盖postHandle。其中有request and response injected

您也可以使用具有更友好api的new HttpServletResponseWrapper((HttpServletResponse) response),而spring可能还有更好的包装......