Spring bean范围:session和globalSession

时间:2013-03-14 10:45:02

标签: java spring spring-mvc spring-ioc

Spring框架中session和globalSession有什么区别?

<bean id="exampleBean" class="com.test.baen.ExampleBean" scope="session"/>
<bean id="exampleBean" class="com.test.baen.ExampleBean" scope="globalSession"/>

根据我的研究,两者在Web感知Spring ApplicationContext的上下文中都是有效的。

现在,会话bean范围将保持到用户会话,但是globalSession bean范围在整个应用程序中是否可用?

是应用程序范围吗?

我无法理解术语“全局HTTP会话”;它将在整个全球HTTP会话中可用吗?

2 个答案:

答案 0 :(得分:96)

globalSession是连接到Portlet应用程序的东西。当您的应用程序在Portlet容器中工作时,它由一些portlet构建。每个portlet都有自己的会话,但是如果你想为应用程序中的所有portlet存储全局变量,那么你应该将它们存储在globalSession中。此范围与基于Servlet的应用程序中的session范围不具有任何特殊效果。

答案 1 :(得分:1)

Session scope 添加了 http 会话的 bean 定义,仅在应用程序上下文中有效。容器将为每个 http 会话创建一个新 bean。 全局会话范围添加了在 portlet 应用程序上下文中使用的全局 http 会话的 bean 定义。