web-dev-qa-db-ja.com

オブジェクトの向きにおけるEJB2.0とEJB3.0の主な違いは何ですか

私はEJBを試したいのですが、EJB3.0の背後にある理論を研究しています。 EJB 3.0では、デプロイメント記述子を使用する必要はありませんが、アノテーションを使用できます。また、HomeおよびRemoteインターフェイスを記述する必要もありません。

EJB 2.EJB 3.の間で、オブジェクト指向に他の重要な違いはありますか?

11
Avraam Mavridis

EJB2.0と3.0の主な違いは理論上以下のとおりです

  1. ホームインターフェイスを排除すると、EJB2.0よりもEJB3.0の方がルックアッププロセスが簡単になります。
  2. 注釈の採用により、EJB 3.0は最新のテクノロジーになり、EJB2.0には注釈の代わりにホームインターフェースとリモートインターフェースがあります。
  3. EJB 2.0は、データベースにアクセスするためのエンティティBeanをデプロイします。 EJB 3.0には、移植性の問題に対処するために一般化されたデータにアクセスするためのJava永続性APIがあります。
  4. EJB 3.0は、新しい導入であるメタデータアノテーションとともにPOJOを使用するため、パフォーマンスが向上します。 POJOは、オブジェクトの参照用にEJB2.0によってデプロイされたXMLDescriptorおよびJNDIよりも高速です。 EJB2.0はPOJOを実装していません。
  5. EJB 2.0は、ホームインターフェイスとリモートインターフェイスの作成に関しては重いものです。 EJB 3.0には、標準インターフェースの使用に関する制限はありません。これは、EJB 2.0で使用されるejbActive、ejbStoreなどのコンテナコールバックメソッドを実行する必要がない、適切に構成されたシンプルなPOJOです。
  6. EJB 3.0では、エンティティBeanをDAOに、またはその逆に簡単に変換できます。これはEJB2.0では不可能です。
    これがある程度役立つことを願っています
21
prem

そうです、これらがEJB 2と3の主な違いです。一般に、EJB 3は、Springなどの軽量インジェクションフレームワークを最大限に活用し、EJBを通常のPOJOに可能な限り近づけました。

しかし、今日、2013年の半ばに、なぜEJB2とEJB3の違いを知りたいのですか? EJB2は廃止されました。バージョン3.xを学び、古いバージョンを忘れてください。最近のEJB2の学習は、自動車が発明される前は馬を輸送手段として使用していたため、自動車の運転を学ぶ前に乗馬を学ぶのとまったく同じです。

3
AlexR