春豆范围:会议和全球会议

2022-08-31 16:19:45

春季框架中的会议和全球会议有什么区别?

<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 会话中可用吗?


答案 1

globalSession是连接到 Portlet 应用程序的东西。当您的应用程序在 Portlet 容器中工作时,它是由一定数量的 Portlet 构建的。每个 Portlet 都有自己的会话,但是如果要为应用程序中的所有 Portlet 全局存储变量,则应将它们存储在 中。此作用域与基于 Servlet 的应用程序中的作用域没有任何特殊效果。globalSessionsession


答案 2

根据春季文档::

会话 - 将单个 Bean 定义的作用域限定为 HTTP 会话的生命周期。仅在 Web 感知的 Spring ApplicationContext 的上下文中有效。

全局会话 - 将单个 Bean 定义的作用域限定为全局 HTTP 会话的生命周期。通常仅在 Portlet 上下文中使用时才有效。仅在 Web 感知的 Spring ApplicationContext 的上下文中有效。


推荐