web-dev-qa-db-ja.com

Spring Beanスコープ:セッションとglobalSession

SpringフレームワークのセッションとglobalSessionの違いは何ですか?

<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セッション全体で利用できますか?

51
Shreyos Adikari

globalSessionは、ポートレットアプリケーションに接続されているものです。アプリケーションがポートレットコンテナで動作する場合、ある程度のポートレットで構築されます。各ポートレットには独自のセッションがありますが、アプリケーションのすべてのポートレットに対してグローバルに変数を保存する場合は、globalSessionに保存する必要があります。このスコープには、サーブレットベースのアプリケーションのsessionスコープと異なる特別な効果はありません。

103
partlov

Springのドキュメントごと::

session-単一のBean定義をHTTPセッションのライフサイクルにスコープします。 Web対応のSpring ApplicationContextのコンテキストでのみ有効です。

グローバルセッション-単一のBean定義をグローバルHTTPセッションのライフサイクルにスコープします。通常、ポートレットコンテキストで使用する場合にのみ有効です。 Web対応のSpring ApplicationContextのコンテキストでのみ有効です。

12
Neha Agarwal