5.2.2. ステートフルセッション Bean
ステートフルセッション Bean コンポーネントは Bean の複数の呼び出しに対して状態を保持できるだけでなく、 複数の要求に対しても状態を保持することができます。 データベースに属さないアプリケーションの状態はすべてステートフルセッション Bean によって保持されるはずです。 これが Seam と他の多くの Web アプリケーションフレームワークとの大きな違いです。 現在の対話データは、
HttpSession ではなく対話コンテキストにバインドされたステートフルセッション Bean のインスタンス変数内に格納します。 これにより、 Seam が状態のライフサイクルを管理し、 異なる同時の対話に関する状態間で衝突が起こらないようにします。
ステートフルセッション Bean は JSF アクションリスナーまたはバッキング Bean として表示やフォームのサブミット用にプロパティを JSF コンポーネントに提供するためによく使用されます。
ステートフルセッション Bean はデフォルトで対話コンテキストにバインドされます。 ページもしくはステートレスコンテキストにはバインドできません。
Seam インターセプタが有効の間は、Seam により同時要求はセッションスコープのステートフルセッション Bean にシリアライズされます。
Seam ステートフルセッション Bean コンポーネントは
Component.getInstance() または @In(create=true) のいずれかを使用してインスタンス化されます。 JNDI 検索や new 演算子で直接インスタンス化を行わないでください。