0

JSF2 と Managed Beans について読んでいます。パッシベーションについて質問です。

私は最近、@StatefulEJB のさまざまな使用例@SessionScopedを求めまし@ManagedBeanた。

sessionscoped マネージド Bean とステートフル ejb の比較

現在、ステートフル EJB はパッシベーションとアクティベーションに適格です。これにより、一時的に永続ストレージにパッシベートして、アイドル時のメモリ使用量を減らすことができます。マネージド Bean でこの機能を利用できるのは見たことがありません。@RequestScopedそのため、マネージド Bean を使用し、@Stateful代わりにショッピング カートなどには EJBを使用する必要があるのではないかと考えました。@Sessionscoped管理対象 Beanを使用して、最小限のユーザー情報を保存します。

これは正しいです?これに関するガイドラインはありますか?

4

1 に答える 1

2

リクエスト スコープのマネージド Bean は、ここでは機能しません。特定のステートフル セッション Bean インスタンスにアクセスするには、そのスタブが必要です。

リクエスト スコープのマネージド Bean を使用すると、このスタブを格納する場所がなくなり、リクエストごとに新しいインスタンスが取得されます。これは、そもそもステートフル セッション Bean を使用する理由を完全に覆します。

ただし、ビュー スコープの JSF マネージド Bean (アクションが単一ページで実行される場合) または会話スコープの CDI Bean (アクションが複数のページで実行される場合) を使用できます。特に後者では、会話の範囲をステートフル セッション Bean の存続時間に結び付けることができます。

これらすべてを行うには、少なくとも中級レベルの Java EE の理解が必要であることに注意してください。ステートフル セッション Bean のパッシベーションに注意しないと (たとえば、@Remove アノテーション付きメソッドを決して呼び出さない)、サーバーの HDD スペースが徐々に消費されます。

于 2011-02-13T16:12:10.917 に答える