Spring web 如何使用web应用程序实现通用HTTP请求/响应日志记录

Spring web 如何使用web应用程序实现通用HTTP请求/响应日志记录,spring-web,spring-webflux,Spring Web,Spring Webflux,在“传统”web框架中,可以使用AbstractRequestLoggingFilter来实现通用日志过滤器。通过web响应,不再调用过滤器(这是有意义的,因为它在HttpServletRequest上运行) 有谁能给我指出使用web Responsive实现请求过滤器的正确方向吗?它可以像AbstractRequestLoggingFilter那样在请求前后记录HTTP请求,包括其主体?您可以实现WebFilter并将其声明为bean,它将自动获取 请注意,WebFilter契约基于Serve

在“传统”web框架中,可以使用AbstractRequestLoggingFilter来实现通用日志过滤器。通过web响应,不再调用过滤器(这是有意义的,因为它在HttpServletRequest上运行)


有谁能给我指出使用web Responsive实现请求过滤器的正确方向吗?它可以像AbstractRequestLoggingFilter那样在请求前后记录HTTP请求,包括其主体?

您可以实现
WebFilter
并将其声明为bean,它将自动获取

请注意,
WebFilter
契约基于
ServerWebExchange
,它持有一个
ServerHttpRequest
。正文不能作为
字节[]
直接访问,而是作为
通量
;这并不意味着要在内存中缓冲或由过滤器使用,因此记录整个请求体比在MVC场景中更复杂。此外,您应该避免在请求处理期间阻塞操作