6

EJB を使用する必要があるのはなぜですか? 他の方法では得られないことから、何を得ることができますか?

POJO と比較して EJB を使用する利点は何ですか?

4

1 に答える 1

8

EJBは Java EE アプリケーション サーバーによって管理および監視され、依存性注入を介して EJB を作成およびクライアントに提供し、ライフサイクルを管理します。EJB はアプリケーション サーバーによってプールに保持されます。クライアントが EJB を取得するたびに、app-server はプールから 1 つを選択してクライアントに割り当てます。クライアントがそれを処理した後 (クライアント側にそれへの参照が残っていない)、プールに返され、他のクライアントに割り当てる準備が整います。

プーリングは、アプリケーションのスケーラビリティにとって非常に重要です。増大する負荷を処理するために、デプロイされたアプリケーションを変更する必要はありません。また、リソースの量が限られているため、負荷が高くなりすぎても、アプリケーションがアプリ サーバーをひざまずくことはありません。アプリサーバーを構成することですべてが行われます。

EJB は、適切に注釈が付けられていれば、トランザクションと非同期実行を処理でき、リモート クライアントに公開できます。

EJB には次の 4 つのタイプがあります。

セッション Bean

  1. ステートレス EJB : クライアントが何らかの操作を実行して戻るようにします。サーバーが他のクライアントに割り当てる可能性があるため、状態を保持するために使用することはできません (たとえば、そこにインスタンス変数がある場合、クライアント間の一種の通信としてこれを使用できます)。値を設定すると、この値が他のクライアントから見える可能性があります)。ステートレス EJB メソッドの使用は、機能的なプログラミングまたはクラスの静的メソッドと同じと考えることができます。
  2. ステートフル EJB : クライアントが複数のリクエスト間で状態を維持できるようにします (クライアントはそれへの参照を保持する必要があります。そうしないと、アプリ サーバーがそれを別のクライアントに割り当てる可能性があります)。
  3. シングルトン EJB : 名前が示すように、サーバーは、このインスタンスがアプリケーション全体で一意であることを保証します。

メッセージ駆動型 Bean

  1. メッセージ駆動型 EJB : これもステートレスであり、通常は JMS と組み合わせてメッセージの送受信に使用されます。メッセージ ハンドラー関数は非同期で実行されます。

EBJ はこれらすべてを提供しますが、POJO は単なる POJO であり、それ以上でもそれ以下でもありません。

于 2013-03-24T23:48:01.220 に答える