4

ステートレス セッション Bean は、同じメソッドを持つ通常のクラスに対して何を提供しますか? ステートフル セッション Bean は箱から出して配布できるようで、コンテナーは状態がどこのクライアントにも同じように見えることを確認します。ステートレス セッション Bean では、通常のクラスでは得られないものは何ですか?

分散環境を使用している場合、EJB 層がフェイルオーバーできるというだけですか? ステートレス セッション Bean のローカル インスタンスまたはリモート インスタンスを取得できるように思えますが、アプリケーションにサーバーを 1 つしか使用せず、リモート インターフェイスをまったく使用しない場合、何か利点はありますか?

4

2 に答える 2

8

EJB は、宣言型セキュリティ、トランザクション、およびリモート処理を提供します。EJB のメソッドの 1 つを呼び出すと、実際には、上記の機能層を提供するインターセプターのスタックを通過します。

Plain Old Java Object はそのようなことはしません。もちろん、それが必要ないのであれば、EJB は必要ありません。

于 2009-12-10T21:00:12.590 に答える
6

ステートレス セッション Bean は、提供するサービスの意図に関する情報をアプリケーション コンテナに提供します。ステートレスであるため、アプリケーション コンテナはいつでも Bean を破棄し、次に必要になったときに再作成することを決定できます。

これらのセマンティクスがなければ、アプリケーション コンテナーは速度/メモリなどのためにアプリケーションを最適化できません。そのため、ステートレス セッション Bean はほとんどが POJO に似ていますが、アプリケーション サーバーにいくつかの追加の「ヒント」を提供します。

EJB3 仕様を使用してステートレス セッション Bean を実装する方法を見ると、通常の POJO と非常に似ていることがわかります (追加のアノテーションは別として)。

于 2009-12-10T21:02:35.863 に答える