Spring bean Области: сеанс и globalSession
В чем разница между сеансом и globalSession в рамках Spring?
<bean id="exampleBean" class="com.test.baen.ExampleBean" scope="session"/>
<bean id="exampleBean" class="com.test.baen.ExampleBean" scope="globalSession"/>
В соответствии с моим исследованием оба действительны в контексте веб-приложения Spring ApplicationContext.
Теперь область сеанса bean останется до сеанса пользователя, но будет областью globalSession bean быть доступной во всем приложении?
Является ли это областью приложения?
Я не могу понять термин "глобальная HTTP-сессия"; будет ли он доступен во время глобальной сессии HTTP?
Ответы
Ответ 1
globalSession
- это то, что связано с приложениями Portlet. Когда приложение работает в контейнере Portlet, оно построено из некоторого количества портлетов. Каждый портлет имеет свой собственный сеанс, но если вы хотите хранить переменные глобальные для всех портлетов в вашем приложении, вы должны хранить их в globalSession
. Эта область не имеет особого эффекта, отличного от области session
в приложениях на основе сервлета.
Ответ 2
Согласно Spring документации::
Сеанс - определяет единственное определение bean для жизненного цикла сеанса HTTP. Действителен только в контексте веб-приложения Spring ApplicationContext.
глобальный сеанс - определяет единое определение bean для жизненного цикла глобальной HTTP-сессии. Обычно используется только при использовании в контексте портлета. Действителен только в контексте веб-приложения Spring ApplicationContext.