5.2. Seam コンポーネント
Seam コンポーネントは POJO (Plain Old Java Objects) です。具体的には、JavaBean または Enterpise JavaBean 3.0 (EJB3) エンタープライズ Bean です。 Seam では コンポーネントが EJB である必要はなく、また EJB3 準拠のコンテナがなくても使用できますが、 EJB3 を念頭にして設計され EJB3 と強く統合します。 Seam は以下の コンポーネントタイプ をサポートします。
- EJB3 ステートレスセッション Bean
- EJB3 ステートフルセッション Bean
- EJB3 エンティティ Bean (JPA エンティティクラスなど)
- JavaBeans
- EJB3 メッセージ駆動型 Bean
- Spring Bean (26章Spring Framework 統合 を参照)
5.2.1. ステートレスセッション Bean リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ステートレスセッション Bean のコンポーネントは複数の呼び出しに対して状態を保持することができません。 従って、 通常は各種の Seam コンテキスト内の他のコンポーネントの状態に応じて動作します。 JSF のアクションリスナーとして使用できますが、 表示に関しては JSF コンポーネントにプロパティを提供することはできません。
ステートレスセッション Bean は常にステートレスコンテキスト内に存在します。 各要求に対して新しいインスタンスが使用されるため、 ステートレスセッション Bean は同時にアクセスが可能です。 EJB3 コンテナはインスタンスを要求に割り当てます (通常インスタンスは再利用可能なプールから割り振られるため、 インスタンス変数は以前に使用した Bean からのデータを保持することができます)。
Seam ステートレスセッション Bean コンポーネントは
Component.getInstance() または @In(create=true) のいずれかを使用してインスタンス化されます。 JNDI 検索や new 演算子で直接インスタンス化しないでください。