Spring会话范围bean,线程安全

时间:2012-07-06 13:35:38

标签: java multithreading spring session scope

我正在使用Struts2,Spring,Hibernate构建一个应用程序。 Struts操作由Spring管理,它们的范围是“请求”,我有会话bean,有一些状态用于执行对话。在我使用Struts2会话映射之前,我想要“containsKey,put,get,cast”噩梦消失。所以我开始使用Spring管理的会话范围bean。

问题:这个bean不是线程安全的吗?如果我们每个浏览器有多个windows-per-user,我们可以在会话bean中获得许多线程?怎么处理?构建线程安全的会话bean?

2 个答案:

答案 0 :(得分:4)

是。存储在大于请求的作用域中的所有内容都可能被多个线程访问,并且必须是线程安全的。

答案 1 :(得分:1)

如果您担心“每个浏览器的每个用户多个窗口”并且还避免Struts2中的“containsKey,put,get,cast”噩梦,您还可以查看struts2-conversation plugin。该插件将为您管理线程安全问题。