问题不在于你的Spring注释,而在于你的设计模式。你将不同的作用域和线程混合在一起:
- singleton
- session (or request)
- thread pool of jobs
单身人士可以在任何地方使用,没关系。但是,会话/请求范围在附加到请求的线程之外不可用。
即使请求或会话不再存在,异步作业也可以运行,因此无法使用依赖于请求/会话的bean。同样也没有办法知道,如果你正在另一个线程中运行作业,那么哪个线程是发起者请求(这意味着aop:proxy在这种情况下没有帮助)。
我觉得你的代码看起来像要作合同 ReportController,报表制作,UselessTask和ReportPage之间。有没有办法只使用一个简单的类(POJO)从UselessTask中存储数据并在ReportController或ReportPage中读取它,而不再使用ReportBuilder?



