将请求范围的bean注入ThreadPool的解决方案是什么?

时间:2015-12-06 16:35:54

标签: java spring spring-mvc threadpoolexecutor

我有一个很棒的spring mvc app。 我有一个bean X,它有以下声明

@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)

我需要创建一个后台cron作业。 我在我的新bean中添加了一个threadPool和@Scheduled注释,它使用了依赖bean bean。

当我的cron任务由Spring启动时,我得到了这个例外:

  

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

我知道我的bean X只会被DispatcherServlet注入。

我的问题是如何解决这个问题?

0 个答案:

没有答案