Spring bean的作用域:session和globalSession
在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会话中使用吗?
globalSession
是连接到Portlet应用程序的东西。 当您的应用程序在Portlet容器中工作时,它由一些Portlet构build。 每个portlet都有自己的会话,但是如果您想在应用程序中为所有portlet存储全局variables,则应该将其存储在globalSession
。 这个范围在基于Servlet的应用程序中没有任何与session
范围不同的特殊效果。
按照Spring文档::
会话 – 在HTTP会话的生命周期范围内定义一个单独的bean定义。 只有在Web感知的Spring ApplicationContext的上下文中才有效。
全局会话 – 在全局HTTP会话的生命周期中作用一个单一的bean定义。 通常只在Portlet上下文中使用时才有效。 只有在Web感知的Spring ApplicationContext的上下文中才有效。