gpt4 book ai didi

spring-webflux - 使用 Spring WebFlux 的 session 和请求范围

转载 作者:行者123 更新时间:2023-12-03 14:20:32 28 4
gpt4 key购买 nike

目前正在尝试使用 进行响应式(Reactive)编程Spring Boot 2.0.0.M4 , Spring 5.0.0.RC4 react 堆 3.1.0.RC1 .

将 @RequestScope 或 @SessionScope bean 注入(inject) WebFlux REST Controller 在运行时失败:

java.lang.IllegalStateException: No Scope registered for scope name 'request'
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:342) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4]
at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35) ~[spring-aop-5.0.0.RC4.jar:5.0.0.RC4]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673) ~[spring-aop-5.0.0.RC4.jar:5.0.0.RC4]
at com.adeliosys.scope.Counter$$EnhancerBySpringCGLIB$$7dce0361.increment(<generated>) ~[classes/:na]
at com.adeliosys.scope.Controller.getQuote(Controller.java:25) ~[classes/:na] // line with theScopedBean.doSometing() call in the REST controller
(...)

Spring Web MVC 的阻塞等效项可以正常工作。

我知道响应式编程会与线程局部变量混淆,但是 是 WebFlux 支持的请求或 session 范围的 bean 注入(inject) ?

如果没有,这是计划好的吗?

感谢您的时间。

最佳答案

实际上,线程局部变量不能在 Spring WebFlux 应用程序中使用,因为工作单元可以随时在任何线程上发生,并且您不能期望在单个线程上处理请求。

这种类型的功能可以使用新的 Reactor Context 来实现。 ,它允许您将一些数据附加到响应式(Reactive)管道。如您所见,Spring WebFlux 目前不支持此功能。

关于spring-webflux - 使用 Spring WebFlux 的 session 和请求范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46540983/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com