web-dev-qa-db-ja.com

Java BeanとEnterpriseの違いJava Beans?

それらは異なっていますか、または交換可能に使用されていますか?それらが異なる場合、何がそれらを互いに異なったものにしましたか?

41
GuruKulki

JavaBeanは、単純な古いJavaオブジェクトであり、メンバーアクセスのためのアクセサー関数(getFoo/setFoo)の使用、デフォルトコンストラクターのプロビジョニング、その他のいくつかのことを含む特定の規則に準拠しています。 。

エンタープライズJavaBeanは、Java EEアプリケーションサーバーのコンポーネントであり、いくつかのフレーバーが付属しています。詳細は、使用するJava EEのバージョンによって異なります。 (または、より具体的には、EJB仕様の特定のセットが関係する)について話します。

JavaBeansは元々、ツールのイントロスペクションを通じて検索できる既知のインターフェイスを提供することにより、ビルダーツールで使用することを主な目的としていました。しかし、彼らはすぐに宗教になりました。

エンタープライズJavaBeanは、セッション管理、セキュリティ、リソースプーリングなどをサービスとして提供する一般的なコンテナー内のエンタープライズアプリケーションのカプセル化されたビジネスロジックを提供することを目的としているため、これらの横断的な懸念によってビジネスロジックが(比較的)汚染されないようにしています。 (最初に使用するのがどれほど難しかったかを考えると、これが達成されたかどうかは議論の余地があります。しかし、仕様の最近のバージョンではこれが容易になりました。遭遇する可能性が高いEJBの大半。


追加して編集:

Java Beanは、プライベート属性(データ)およびgetterおよびsetterメソッドを含むクラスのインスタンスとして定義されます。

あなたが持っている場合:

private String myString;クラスには、メソッドpublic String getMyString();が必要です。およびpublic void setMyString(String settingString);コードで定義されています。ただし、すべてを定義することは絶対に必須ではありません。何かが壊れても驚かないでください!

EJB(Enterprise Java Bean)ははるかに複雑です。EJBを処理するアプリケーションサーバーにのみ存在します(TomcatはEJBを保持しません)。EJBには3つのタイプがあります。

  1. セッション:通常、いくつかのビジネスロジックが含まれます。
  2. エンティティ:通常、データストア(データベースなど)とインターフェイスします。
  3. メッセージ駆動型:JMSからメッセージを受信します。
17
sbose

Java Beanは、フィールドとそのゲッターセッターメソッドのみを持つクラスを指します。ビジネスロジックがほとんどないか、まったくないことが望ましい。 POJO(Plain Old Java Object)とも呼ばれます。

EJBは、トランザクション、セッション管理、セキュリティなど、J2EE準拠サーバーの全機能を活用するために使用できるJ2EE仕様の一部です(つまり、EJBを使用しないとこれらを使用できないという意味ではありません)

7
saugata

「Java Beans」は お店 データ 取得したデータ データベースから、として使用 容器 サーブレットとJSPの間でデータを運ぶために MVCモデル。セッターとゲッターを持つクラス(コンテナー)は、データの(配置)および(取得)に使用されます。

「Enterprise Java Beans」は「Java Beans」に似ていますが、 追加された機能 といった セッション管理、セキュリティ、トランザクションなど とともに さまざまなタイプのEJBの支援 それは

  1. セッションBean
  2. エンティティBean
  3. メッセージ駆動型Bean
3
user2790341