2011-08-11 7 views
1

JSFマネージドBeanスコープを並行処理の観点から理解するのに助けになる人はいますか?並行処理ビューからJSFマネージドBeanスコープを理解するのを助けてください

私の理解:私は持っていたら

は、Beanが平均だセッションスコープにスコープ:発生並行処理に可能性がないように、この管理対象Beanにアクセスできる唯一のユーザがいます。

また、要求スコープ内でBeanを使用すると、要求が開始された後にこのBeanが作成され、 が返され、応答が返されるとそのBeanが削除されます。

また、いったん非スコープでBeanを使用すると、ユーザーがBeanを呼び出すと、そのBeanが作成され、コールが終了した後でBeanが削除されます。

しかし、アプリケーションスコープ内にBeanがあると、複数のクライアントがこのBeanにアクセスできることを意味します。したがって、私は重要なデータを持っていれば同期によって保護する必要があります。

すべての入力を高く評価します。

答えて

3

各スコープの寿命の理解は良いと思います。

ただし、同期を適用するタイミングについてのあなたの理解は良くないと思います。特定のスコープ内でBeanのメソッドを同期させる必要がある場合は、通常、Beanのスコープが保持するデータの幅が広すぎることを示します。次に、より狭い範囲にBeanを配置するか、より狭い範囲の別のBeanにデータを移動して、同期を行う必要はありません。

リクエストスコープのデータ(プレゼンテーションデータ、同期フォームデータなど)をリクエストスコープに入れる必要があります。ビュースコープのデータ(非同期フォームデータ、rendered属性条件、 "隠し値"など)をビュースコープに配置する必要があります。セッションスコープのデータ(ログインユーザー、ユーザー設定、ユーザー固有データなど)をセッションスコープに配置する必要があります。アプリケーションスコープのデータ(グローバルドロップダウンリスト値、構成設定など)をアプリケーションスコープに入れる必要があります。

関連する問題