【问题标题】:Spring Boot How can i easy Scope Request bean in Async method?Spring Boot 如何在异步方法中简化 Scope Request bean?
【发布时间】:2018-08-02 13:49:57
【问题描述】:

弹簧靴 如何在异步方法中轻松使用带有 Request Scope 的 bean。

当我尝试执行时出现异常:

org.springframework.beans.factory.BeanCreationException: 创建名为 'bean 的 bean 时出错! class':范围'request'对于当前线程不活动;如果您打算从单例中引用它,请考虑为该 bean 定义一个作用域代理;嵌套异常是 java.lang.IllegalStateException:未找到线程绑定请求:您是指实际 Web 请求之外的请求属性,还是在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,则您的代码可能在 DispatcherServlet/DispatcherPortlet 之外运行:在这种情况下,请使用 RequestContextListener 或 RequestContextFilter 来公开当前请求。

【问题讨论】:

  • 你不能。只要异步方法运行,请求就结束了。您需要将所需的数据传递给异步方法。
  • 发布一些代码。无法从这条错误消息中看出你做了什么。
  • 您期待/等待回复吗?请求范围 bean 中的异步方法可以是非异步的并将调用委托给异步单例 bean 吗?请张贴代码。

标签: spring spring-boot spring-bean requestscope


【解决方案1】:

我找到了解决此错误的简单方法。

我已经初始化了 requestScope bean。 其中包含@Async 方法。

现在每个带有控制器的 request(rest) 调用都会收到一个新的 bean 实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多