如何使用来自不同线程的ApplicationContext会话作用域类

时间:2019-10-03 03:43:56

标签: java spring-boot threadpool

使用@Async注释,我想在另一个可以访问Session和Request作用域类的线程中调用方法。

但是,当ApplicationContext尝试获取Bean时,会生成以下异常:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.sessionInfoClass': Scope 'session' is not active for the current thread;

我曾尝试扩展ApplicationContextAware类以容纳主线程上下文。

我也尝试过此问题How to enable request scope in async task executor

的建议解决方案

源代码在Github中

https://github.com/saavedrah/spring-threadSample

1 个答案:

答案 0 :(得分:1)

我已经为您的回购创建了拉取请求,以解决此问题。

基本上,我也为Runnable的情况扩展了this solution

要进行验证,请运行ThreadSampleApplication类,然后点击http://localhost:8080/testAsync