web-dev-qa-db-ja.com

JavabeanとEJBの違い

親戚からの簡単な質問Java初心者:

javaBeanとEJBの違いは何ですか?

39
LRE

Java Beanは単なる規則の集まりです。 EJBは、J2EEビジネスコンポーネントの標準です。

具体的には、Java Bean:

  • デフォルトのパブリックコンストラクタがあります。
  • 読み取り可能なプロパティメソッドは「get」で始まります。
  • 書き込み可能なプロパティメソッドの前には「セット」があります。そして
  • シリアライズ可能です。

たとえば、「マージン」のプロパティを持つJava Beanは、少なくとも次のようになります。

public class MyBean implements Serializable {
  private int margin;

  public MyBean() { }
  public int getMargin() { return margin; }
  public void setMargin(int margin) { this.margin = margin; }
}

EJBは、その名前にもかかわらず、ほとんど完全に無関係です。

33
cletus

この記事をご覧ください- JavaBeansとEnterprise JavaBeans

概要:

[〜#〜] jb [〜#〜]

JavaBeansは、あらゆるレベルでさまざまなタイプのJavaアプリケーション(アプレット、スタンドアロンアプリなど))を構築するために使用できる再利用可能なソフトウェアコンポーネントの開発に低レベルのアプローチを採用しています。

[〜#〜] ejb [〜#〜]

Enterprise JavaBeansは、分散システムを構築するための高レベルのアプローチを採用しています。これにより、アプリケーション開発者はビジネスロジックのみのプログラミングに集中できるようになりますが、エンタープライズアプリケーションに必要なすべての「配管」コードを記述する必要がなくなります。

11
adatapost
  1. JavaBeansは、実行時に表示される場合と表示されない場合があります。たとえば、ビジュアルGUIコンポーネントは、ボタン、リストボックス、グラフィック、またはチャートです。

    EJBは非視覚的なリモートオブジェクトです。

  2. JavaBeansは、単一のプロセスに対してローカルであることを意図しており、主にクライアント側で実行することを意図しています。サーバー側のJavaBeanを開発することもできますが、EJB仕様を使用して開発する方がはるかに簡単です。

    EJBは、リモートで実行可能なコンポーネントまたはビジネスオブジェクトであり、サーバーにのみデプロイできます。

  3. JavaBeansは、アプレットとアプリケーションにまとめることができる一般的なJavaコンポーネントを作成するためのコンポーネント技術です。

    EJBはコンポーネントテクノロジーですが、元のJavaBean仕様に基づいて構築または拡張されていません。

  4. JavaBeansには、プロパティー・インターフェースと呼ばれる外部インターフェースがあり、ビルダー・ツールがBeanの機能を解釈できるようにします。

    EJBには、その機能を外部ビルダーツールまたはIDEに記述するデプロイメント記述子があります。

  5. JavaBeansにはBeanInfoクラス、プロパティエディタ、またはカスタマイザが含まれる場合があります。

    EJBにはBeanInfoクラス、プロパティエディタ、カスタマイザの概念はなく、デプロイメント記述子で説明されている以外の追加情報はありません。

  6. JavaBeansは型付けされません。

    EJBには、セッションBeanとエンティティBeanの2つのタイプがあります。

  7. JavaBeansのトランザクションに対する明示的なサポートはありません。

    EJBはトランザクション対応であり、EJBサーバーはトランザクション対応を提供します。

  8. コンポーネントブリッジはJavaBeansで使用できます。たとえば、JavaBeanはActivexコントロールとしてデプロイすることもできます。

    ActiveXコントロールはデスクトップで実行することを目的としており、EJBはサーバー側のコンポーネントであるため、EJBをActiveXコントロールとしてデプロイすることはできません。ただし、EJBからCORBAへのマッピングによるCORBA-IIOPの互換性は、OMGによって定義されています。

7
Charu Jain
6
lutz

受け入れられた回答から理解するのは少し面倒なので、いくつかのリンクをグーグルして、回答を取得しました。

Enterprise JavaBeans(EJB) 3.1これらはJ2EE仕様であり、サーバーに指示します(アプリケーションサーバー)(EJBコンテナーにコードの一部をデプロイするため)

EJBテクノロジは、コンポーネントベースのビジネスアプリケーションの開発と配備のためのサーバー側コンポーネントアーキテクチャです。 EJBテクノロジは、Java EE 6テクノロジに基づいた分散、トランザクション、安全、およびポータブルアプリケーションの迅速かつ簡素化された開発を可能にします。

単純な言語で:EJBを作成してサーバーにデプロイすると、それを呼び出すことができますremotely(RMIを使用したJNDIルックアップなどのテクニックを使用)またはlocally(アプリケーション内で)。

一方、 Java beans は、単純なプレーンJavaゲッターとセッターを含むクラスであり、そのクラスはシリアル化されています。以下に例を示します。

public class MyBean implements Java.io.Serializable
{
   protected  int theValue;

   public MyBean()
   {
   }

   public void setMyValue(int newValue)
   {
      theValue = newValue;
   }

   public int getMyValue()
   {
      return theValue;
   }
}

つまり、EJBとJava Beans()の間にまったく比較の概念がないことを意味します。

5
Vishrant