如何在 spring-webflux 中使用请求和会话范围(截至最新版本)

t_p*_*ank 3 spring-webflux

我正在通过 spring-webflux(Spring Boot 2.1Spring Framework 5.1) 使用反应式编程开发一个 REST Web 服务。我需要创建具有请求级别范围的组件。建议在 Spring MVC 应用程序中使用 @Scope 注解。但我发现这不适用于 webflux 应用程序。

截至最新版本,webflux 中是否有等效功能?

如果不是,那么在每个传入请求上创建组件的新实例的解决方法是什么?

我试图避免使用 new 运算符。

感谢你的建议。

Akh*_*dla 5

不幸的是,您不能像 Spring MVC 应用程序中那样使用请求范围spring-webflux。主要原因是,它们使用 ThreadLocals,但不能使用它,spring-webflux因为可以随时在任何线程上完成工作。

Spring webflux 的project-reactor核心使用。因此,您可以使用Reactor Context,它允许您在反应式管道中共享数据。