将 spring Websession 与 spring 反应性网络流量集成

Integrating spring Websession with spring reactive web flux

位于 here 的 spring 新反应式 Web 流量 api 有一个新的 http 会话实现。 我想将最新的 spring 网络会话集成到新的 spring 反应性网络流量中。我似乎无法理解,我尝试将它作为一个 bean 注入,但它不起作用。我想像通常使用 HttpSession

一样注入它

类似

@Autowired
Websession webSession;

因为SpringWebFlux 是一个反应式Web 框架,您不能期望Web Session 作为bean 注入(即使在请求范围内)。在 Servlet 世界中,每个 request/response 都在单个线程中处理,这使得这些方法成为可能(即 "request" 范围)。使用 WebFlux,一个给定的请求可以由多个线程处理。

与当前 request/response 关联的 WebSession 实例实际上附加到 ServerWebExchange(参见 getSession)。由于反应式编程模型的性质,您很可能会在 Reactor 运算符中访问该会话 - 因此您不能期望将此实例注入应用程序中的其他地方。