让我们看下面的示例代码:
@RequestMapping(value = "/", method = RequestMethod.POST)
public ResponseEntity<Car> update(@RequestBody Car car) {
...
}
我有很多类似的控制器和方法。我想记录所有
RequestBody
参数(如Car
)。因此,我尝试使用AbstractRequestLoggingFilter
(afterRequest方法)和HandlerInterceptor
。但是我看不到一种方法,如何在这些类的帮助下获取方法的参数。 最佳答案
您可以在HandlerMethod.getMethodParameters()
中使用HandlerInterceptor
:
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HandlerMethod handlerMethod = (HandlerMethod) handler;
MethodParameter[] methodParameters = handlerMethod.getMethodParameters();
// Inspect & log parameters...
}