在我看来," session“作用域是将对象保留在session中的另一种方法,例如
使用setAttrubute / getAttribute
对,是这样?
你知道,不知道为什么,它对我不起作用。
我看到的是,在初始化和初始部署之后,MyUser属性是正确的。
然后,在我更改MyUser属性的第一个会话中,该会话将关闭。
第二个会话运行,它看到上一个会话的最后一个设置值!
那是什么意思?
我希望这个对象在新会话开始时被初始化。但是它看起来更像单例,尽管你可以看到- "session“属性被设置了。
我可以看到问题的原因在于,Servlet的字段是用@Autowired初始化的,因此,一旦初始化,每隔一个会话就会看到它的字段被设置,并且不会"ReWire“这个属性。它只发生一次?如何克服这个问题?
发布于 2010-05-07 21:42:12
Spring session与HttpSession并不完全匹配,甚至@SessionAttributes注解上的Spring文档也说它可能存储在会话中或“一些对话式的存储”中。我从The Spring docs for 2.5那里学到了这一点,我基本上已经不再尝试去理解它了,只是开始了我的生活,如果我想要存储在HttpSession中的东西,我只需要让Spring注入HttpSession给我,假设你使用的是Spring MVC它很容易,指令在同一页上。
发布于 2010-05-07 21:19:44
会话范围的bean是在整个http会话中存在的bean。它们以某种方式通过setAttribute存储在会话中。
所以-是的。
发布于 2010-05-07 23:53:31
会话作用域的bean由Spring框架存储在Http会话中。此范围仅在works环境中有效,也适用于application.It环境。在Portlet环境中使用时,有两个概念:会话、应用程序范围和portlet范围(默认)。
https://stackoverflow.com/questions/2788774
复制相似问题