web-dev-qa-db-ja.com

EJBを使用する理由

EJBとは何ですか。なぜ使用する必要があるのでしょうか。簡単な言葉で説明してください。ありがとうございました。

33
mriganka3

EJBまたはエンタープライズJava Beanは単純ですJavaクラス(バージョン3.0以降)の注釈を使用して、アプリケーションのビジネスロジックを記述し、後でデプロイできるようにします( Java Enterprise Editionサーバー。

Java Enterprise Edition(Java EE)サーバーによって提供される以下のサービスを利用する場合は、EJBの使用を検討する必要があります。

  • クラスタリング。 EJBをクラスター環境(Java EE Application Serverに依存)にデプロイできます。これにより、フォールトトレランスと高可用性が実現します。
  • スレッドを使用しない同時実行。すべてのejbはオブジェクトのプールを介してインスタンス化されるため、アプリケーションはスレッドの複雑さなしにパフォーマンスを向上させます。
  • JTAによるトランザクション。すべてのejbは、さまざまなリソース(最も重要なデータベース)のトランザクション管理のメリットを享受できます。アノテーションを使用すると、すべてのトランザクションの境界を簡単に区切って管理できます。
  • データベースへの接続プール。すべてのejbは、Java EE Application Serverに定義された接続プールにアクセスできます。この接続プールは、データベースの複雑さの抽象化を提供します。たとえば、Two Facesを実行できるXA Datasource異なるデータベースにコミットします。
  • セキュリティ。すべてのejbはJAASを使用してアプリケーションを保護できます。 JAASは、Java EE Application Serverに構成され、構成だけで異なるプロバイダーを介してEJBのメソッドを認証および許可できます(例:Active Directory、LDAPまたはデータベースを使用)。
  • スケジュールサービス。すべてのejbは、タイマーサービスを使用できます。これにより、タスクを実装して、さらに実行したり、繰り返し実行したりすることができます。

他にもサービスと利点がありますが、これらが最も重要だと思います。これらの利点が必要ない場合は、EJBを使用しないことをお勧めします(すべてのアプリケーションがエンタープライズアプリケーションではない)。

25

EJB Beanは、アプリケーションのビジネスロジックを実装するように特別に設計されています。そのため、トランザクション、エンティティマネージャーのインジェクション(JPA、Java Persistence API)に使用)、およびBeanのプールなど、このようなロジックを実装するときに必要なサービスを提供します。

より詳細な回答およびさらに多くの参照については、これを参照してください。 EJBの用途

可能な限り最も基本的な言葉遣いで。 「EJB Beanを使用すると、JPAを介してデータベースを操作しやすくなります」。

EJBの外部でJPAを使用するには、エンティティマネージャーを取得し、トランザクションを開始してトランザクションをコミットまたはロールバックするために、多くの冗長でエラーが発生しやすいコードが必要です。

EJBを使用する理由は他にもたくさんありますが、経験から、それが一番の理由だと思います。

15
Arjan Tijms

Enterprise JavaBeansアーキテクチャまたは略してEJBは、コンポーネントベースの堅牢で拡張性の高いビジネスアプリケーションの開発と展開のためのアーキテクチャです。これらのアプリケーションは、スケーラブルで、トランザクションがあり、マルチユーザーに対して安全です。アプリケーションを一度開発してから、Java EE 5準拠のアプリケーションサーバーのいずれか1つにデプロイできます。無料および商用の両方で利用可能な多くのアプリケーションサーバーがあります。開発用のサーバーを選択できます。要件と予算に合わせた展開。

EJBの利点

EJBは、小規模および大規模なエンタープライズアプリケーションの開発を簡素化します。 EJBコンテナは、エンタープライズBeanにシステムレベルのサービスを提供します。Bean開発者は、ビジネスの問題を解決するロジックの開発に専念できます。

詳細については wiki をご覧ください

新しいJava EEチュートリアルがここにあります: http://download.Oracle.com/javaee/6/tutorial/doc/ 。 。

そして、ウィキペディアは答えのささいな場所かもしれませんが、この記事はEJBが何であるかのかなり良い概要です: http://en.wikipedia.org/wiki/Enterprise_JavaBean

1
Mark Nichols

トランザクション、リモート性など。適切なEJBブックを購入して読んだり、グーグルで調べたりすることができます。ここから始めてください Java EE6 EJB 。おそらくすべての初期クエリに答えます。

0
planetjones