15
|
jonas.hartwig · 技术社区 · 8 年前 |
![]() |
1
17
对于未来的冒险家: 我花了一些时间仔细研究Spring代码,发现 RequestContextHolder 具有可继承RequestAttributesHolder的。如果您查看这是什么的文档(继承自: InheritableThreadLocal )可以阅读以下内容: 当变量中维护的每线程属性(如用户ID、事务ID)必须自动传输到创建的任何子线程时,可继承线程局部变量优先于普通线程局部变量使用。 所以 请求上下文保持器 有一个字段,实际上setRequestAttributes支持使用inheritableRequestAttibutesHolder的标志。此外,如果你看 RequestContextListener ->requestInitialized会发现调用它时没有标记(=false)。所以我最终做的是:
瞧,我可以在子线程中访问SessionContextProvider。 |
![]() |
2
3
在我的案例中,使用 OrderedRequestContextFilter 解决问题。您还必须将threadContextInheritable标志设置为true,如下所示:
|
![]() |
kristheman · 要求循环内的setAttribute 6 年前 |
![]() |
manus · 使用css的背景图像从servlet显示svg 6 年前 |
![]() |
Mimine · 使用servlet和jsp从SQL表中删除记录 6 年前 |
![]() |
Yura · 无法链接引导。min.css和动态web app 6 年前 |