Java EEとは正確には何ですか?


162

私はここ数年、Java SEを行っており、Java EEに移行しています。ただし、Java EEのいくつかの側面を理解するのに問題があります。

  1. Java EEは単なる仕様ですか?つまり、EJBはJava EEですか?

  2. EJB / SpringはJava EEの異なる実装ですか?

申し訳ありませんが、Java EEとは何か理解するのが難しいです。

誰かがJava EEとは何かを説明できますか?そしてEJB?



2
この質問は2つの質問に分割する必要がありますが、1つは重複しており、もう1つはリンクで回答されていないと思います。
Kheldar、2011

2
実際、[java-ee] タグwikiを読みましたか?
–PaŭloEbermann、2011


回答:


187

Java EEは単なる仕様ですか?つまり、EJBはJava EEですか?

Java EEは確かに抽象的な仕様です。誰でも、仕様の実用的な実装を開発して提供することができます。具体的な実装は次のように、いわゆるアプリケーションサーバですWildFlyTomEEGlassFishのリバティのWebLogicなどのような巨大なJava EE APIの唯一のJSP /サーブレットの一部を実装するサーブレットコンテナもありますTomcatの桟橋は、等

私たちは、Java EEの開発者は、仕様を利用し(すなわち輸入コードを書く必要がある唯一の javax.*代わりのような実装固有のクラスの我々のコード内のクラスorg.jboss.wildfly.*com.sun.glassfish.*など)をし、我々はすべての上で、このように(任意の実装に私たちのコードを実行できるようになりますアプリケーション・サーバー)。JDBCに精通している場合、JDBCドライバーの動作と基本的に同じ概念です。aoも参照してください。簡単に言えば、ファクトリーとは何ですか。

Java EE SDKのダウンロード Oracle.comからは、基本的には、ドキュメントとサンプルおよび任意には、NetBeans IDEの束に沿ってのGlassFishサーバーが含まれています。別のサーバーやIDEが必要な場合は必要ありません。

EJBはJava EE仕様の一部です。見て、それはJava EE APIにあります。本格的なJava EEアプリケーションサーバーはそのまま使用できますが、単純なJSP /サーブレットコンテナーはサポートしていません。

以下も参照してください。


EJB / SpringはJava EEの異なる実装ですか?

いいえ、言ったように、EJBはJava EEの一部です。Springは、Java EEの多くの部分を置き換えて改善するスタンドアロンフレームワークです。Springの実行には、必ずしもJava EEは必要ありません。Tomcatのような必要最小限のサーブレットコンテナですでに十分です。簡単に言えば、SpringはJava EEの競合相手です。たとえば、「Spring」(スタンドアロン)はEJB / JTAと競合し、Spring MVCはJSF / JAX-RSと競合し、Spring DI / IoC / AOPはCDIと競合し、Spring SecurityはJAAS / JASPICと競合します。

以前のJ2EE / EJB2時代には、EJB2 APIの実装と保守はひどいものでした。その後、SpringはEJB2のはるかに優れた代替手段となりました。しかし、EJB3(Java EE 5)以降、EJB APIはSpringから学んだ教訓に基づいて大幅に改善されました。CDI(Java EE 6)以降、開発者が他のサービス層を簡単に開発できるようにするために、Springのような別のフレームワークをもう一度検討する理由は実際にはありません。

Tomcatなどの必要最小限のサーブレットコンテナーを使用していて、Java EEサーバーに移動できない場合にのみ、SpringはTomcatに簡単にインストールできるため、魅力的です。たとえば、サーバー自体を変更せずにTomcatにEJBコンテナをインストールすることはできません。基本的にはTomEEを再発明することになります。

以下も参照してください。


2
したがって、Java EEは、典型的なJEEアプリケーションを実行するために必要なサポートを定義していると言えますか?
James P.

4
@ジェームズ:はい。Java EE APIのほとんどすべてが抽象的です。Java SEのAPIは、いくつかの抽象的部分、例えばJDBC、JAXP、JAXBなどがある
BalusC

3
「開発者をより簡単にするために、Springのような別のフレームワークをもう一度検討する理由は実際にはありません。」->本当に貴重な情報。
jacktrades

@BalusC:こんにちは、Sun Java EEの公式リンクです。リンクが壊れています。そのようなリンクを指定すると、誰かの役に立ちます。
Abdul Rahman

完全なSpringフレームワークを実行するには、サーブレットコンテナーで十分です。サーブレットコンテナーは[Webサーバー+ Webコンテナー(サーブレットAPIを実装)]です。JavaEEを実行するには、Glassfishのようなアプリケーションサーバーが必要です。サーブレットコンテナーでは不十分です。サーブレットコンテナは、アプリケーションサーバーのサブセットです。これをどうやって理解できますか?
17

11

Java Enterprise Edition(Java EE)は、他の多くの詳細な仕様を参照する包括的な仕様であり、Enterprise JavaBeans(EJB)は最も重要な仕様の1つです。

これを読む -Java EEとSpringの違いを説明しています

ありがとう...


4
  • ソース -Java 2 Platform、Enterprise Edition(J2EE)は、コンポーネントベースの多層エンタープライズアプリケーションを開発するための標準を定義しています。J2EEは、移植可能でスケーラブルで、レガシーアプリケーションやデータと簡単に統合できるエンタープライズアプリケーションの構築を簡素化します。

  • ソース -Enterprise JavaBeans(EJB)テクノロジーは、Java Platform、Enterprise Edition(Java EE)のサーバー側コンポーネントアーキテクチャです。EJBテクノロジは、Javaテクノロジに基づいた、分散されたトランザクション対応の安全で移植可能なアプリケーションの迅速かつ簡素化された開発を可能にします。

  • Java EEは単なる仕様ですか?つまり、EJBはJava EEですか?

    • Java EEは仕様です。

    • EJBは、Java EEのサーバー側コンポーネントアーキテクチャです。

  • EJB / SpringはJava EEの異なる実装ですか?

    • EJBとSpringはどちらも、Java EEに準拠した異なるフレームワークです。

6
仕様の古いバージョン(J2EE)から古代のテキスト(2005)を引用することはあまり役に立ちません。OPは、J2EEの現代の化身であるJava EEを特に求めました。
Arjan Tijms

-5

簡単に言えば、JavaEEはプラットフォームです。

これは単なるAPIである多くの仕様で構成されています。これらのAPIの具体的な具体的な実装は、いわゆる「参照実装」です。

  1. EJBはJavaEEプラットフォーム内の1つの仕様にすぎません
  2. いいえ、Springは、JavaEEアプリケーションを開発するためのサポートを提供できるアプリケーションフレームワークです。

EJBはエンタープライズJava Beanです


4
この回答は、以前の回答に何も追加しません。さらに、それは正確ではありません。1つの具体的な実装のみが参照であり、他の実装はそうではありません。マイナー1:SpringはJavaEEと統合しますが、それなしでも問題なく動作します。
Tair

@tairはい1つの具体的な実装のみが「参照」と見なされます。たとえば、JPAには多数の実装がありますが、RIはEclipseLinkだけです。私がRIについて言及したとき、私はさまざまなAPIで意味がありました。上記の私の答えを誤解したと思います。また、はい、SpringはJavaEEと統合されています。これは、前述のとおりです。
SoftwareDeveloper
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.