3

这里有一个新的用于 spring 新的响应式 web 通量 api 的 http 会话实现。我想将最新的 Spring Web 会话集成到新的 Spring 响应式 Web Flux 中。我似乎无法得到它,我尝试将它作为 bean 注入,但它不起作用。我想像往常一样使用 HttpSession 注入它

就像是

@Autowired
Websession webSession;
4

1 回答 1

5

因为 Spring WebFlux 是一个响应式 Web 框架,所以您不能期望 Web Session 被作为 bean 注入(即使在请求范围内)。在 Servlet 世界中,每个请求/响应都在单个线程中处理,这启用了这些方法(即“请求”范围)。使用 WebFlux,一个给定的请求可以由多个线程处理。

与当前请求/响应关联的WebSession实例实际上附加到ServerWebExchange(请参阅getSession)。由于反应式编程模型的性质,您很可能在 Reactor 操作符中访问该会话 - 因此您不能期望将此实例注入应用程序的其他位置。

于 2017-08-24T12:28:09.747 回答