Spring-webflux,如何在@ExceptionHandler中获取请求作为参数

ger*_*s.b 6 spring exception-handling spring-boot spring-webflux

使用 spring webflux 和@RestController模型,我有@RestControllerAdvice一些@ExceptionHandler方法。

我想获取原始请求作为参数,因为我想记录它并在我的响应中使用它。

但是,我已经尝试了经典 MVC 模型中处理程序方法的所有可能类型,但没有一个被接受(HttpServletRequest,WebRequestServerRequest)。

我可以使用什么类型来访问 webflux 注释处理程序方法中的原始请求?

Bri*_*zel 8

您应该使用org.springframework.http.server.reactive.ServerHttpRequest,因为:

  • HttpServletRequest并且WebRequest是 Servlet/Spring MVC 特定的
  • ServerRequest 属于 Spring WebFlux,但功能变体