2013-03-14 56 views
40

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

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

根据我的研究,两种方法都可以在web-aware Spring ApplicationContext的上下文中使用。

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

它是应用范围吗?

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

回答

77

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

+0

谢谢你澄清它。为你+1。 – 2013-10-08 14:44:19

8

按照Spring文档::

会议 - 作用域一个bean定义到一个HTTP会话的生命周期。只有在Web感知的Spring ApplicationContext的上下文中才有效。

全局会话 - 范围是全局HTTP会话生命周期中的单个bean定义。通常仅在Portlet上下文中使用时才有效。只有在Web感知的Spring ApplicationContext的上下文中才有效。

+0

好的回答.... – 2015-12-15 22:07:50