gpt4 book ai didi

java - 如何在 AbstractRequestLoggingFilter 或 HandlerInterceptor 中获取请求处理程序的参数?

转载 作者:行者123 更新时间:2023-11-30 02:49:58 24 4
gpt4 key购买 nike

让我们看一下这个示例代码:

@RequestMapping(value = "/", method = RequestMethod.POST)
public ResponseEntity<Car> update(@RequestBody Car car) {
...
}

我有很多类似的 Controller 和方法。我想记录所有 RequestBody 参数(例如 Car)。因此,我尝试使用 AbstractRequestLoggingFilter (afterRequest 方法)和 HandlerInterceptor。但我没有找到一种方法,如何借助这些类来获取方法的参数。

最佳答案

问题在于,将请求参数转换为 Car 的 Spring MVC 机制仅将结果提供给 Controller 。

有两种方法可以进行日志记录:

  • 在请求参数级别:由于 HandlerInterceptor 可以访问请求,因此它可以读取参数并使用以下 ServleRequest 方法记录它们:getParameterNames 和 getParameterValues 或 getParameterMap

  • 在服务级别:如果您的 Controller 是一个瘦 Controller ,将实际处理委托(delegate)给服务类,您可以在服务方法上使用 Spring AOP 并带有 before 建议,因为它将可以访问 汽车对象

关于java - 如何在 AbstractRequestLoggingFilter 或 HandlerInterceptor 中获取请求处理程序的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39039695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com