首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bean的Spring "session“作用域

bean的Spring "session“作用域
EN

Stack Overflow用户
提问于 2010-05-07 21:15:53
回答 3查看 8.6K关注 0票数 0

在我看来," session“作用域是将对象保留在session中的另一种方法,例如

使用setAttrubute / getAttribute

对,是这样?

你知道,不知道为什么,它对我不起作用。

我看到的是,在初始化和初始部署之后,MyUser属性是正确的。

然后,在我更改MyUser属性的第一个会话中,该会话将关闭。

第二个会话运行,它看到上一个会话的最后一个设置值!

那是什么意思?

我希望这个对象在新会话开始时被初始化。但是它看起来更像单例,尽管你可以看到- "session“属性被设置了。

我可以看到问题的原因在于,Servlet的字段是用@Autowired初始化的,因此,一旦初始化,每隔一个会话就会看到它的字段被设置,并且不会"ReWire“这个属性。它只发生一次?如何克服这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-07 21:42:12

Spring session与HttpSession并不完全匹配,甚至@SessionAttributes注解上的Spring文档也说它可能存储在会话中或“一些对话式的存储”中。我从The Spring docs for 2.5那里学到了这一点,我基本上已经不再尝试去理解它了,只是开始了我的生活,如果我想要存储在HttpSession中的东西,我只需要让Spring注入HttpSession给我,假设你使用的是Spring MVC它很容易,指令在同一页上。

票数 1
EN

Stack Overflow用户

发布于 2010-05-07 21:19:44

会话范围的bean是在整个http会话中存在的bean。它们以某种方式通过setAttribute存储在会话中。

所以-是的。

票数 1
EN

Stack Overflow用户

发布于 2010-05-07 23:53:31

会话作用域的bean由Spring框架存储在Http会话中。此范围仅在works环境中有效,也适用于application.It环境。在Portlet环境中使用时,有两个概念:会话、应用程序范围和portlet范围(默认)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2788774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档