Spring Session作用域bean是否保存在HttpSession中?

Ani*_*tap 5 java spring servlets inversion-of-control httpsession

由于我对Spring Session范围的实现没有深入的了解。谁能告诉我使用Spring Session范围的bean是否明智,因为HttpSession对象非常重要。就像Web应用程序一样,成千上万的用户可以同时访问该站点。

Spring Session作用域bean是否保存在HttpSession对象中?

或者,即使HttpSession对象仅引用spring会话作用域的bean,我们是否也不会增加会话对象的负担?

直接在HttpSession对象中存储任何bean的形式有何不同(使HttpSession对象的观点繁重)?

Eug*_*hov 2

该对象并不真正存储在 HTTP 会话中。它与会话 ID 链接,实际上存储在 Spring 上下文中。会话侦听器用于在会话关闭后清理实例。请参阅SessionScope JavaDoc。

  • 查看Spring源码,这似乎并不准确。会话范围的 bean *实际上*存储在 `HttpSession` 对象本身内。`SessionScope` 最终调用 `ServletRequestAttributes.setAttribute()`。 (5认同)