2010-11-25 34 views
31

私はさまざまなJavaフレームワークと非常に混同しています。私はいくつかの穏やかなWebサービスを提供するためにJavaサーバープロジェクトを作成したいと思いますが、どのフレームワークを選択すべきかわかりません。 JSF、EJB、Hibernate、Springの違いは何ですか?私がそれらをもっと理解するのを助けてください。EJB、hibernate、spring、JSFの違いは何ですか?

+5

+14バーガー、飛行機と馬の違いについて質問する質問がありますか? –

+6

@MichaelLaffargueあなたが食べる場所によっては、あなたが考えるようにハンバーガーと馬の間に大きな違いはないかもしれません。 –

+2

@JasonCあなたはポイントがある;) –

答えて

49

これらは異なるレイヤーのフレームワークです。

  • JSFビュー(ウェブ)層のために、それは自動改札やタペストリーなどのコンポーネント指向フレームワーク(ページのすべての部分がコンポーネントである、それは状態を持っている)、およびSpring MVCのようなとは異なり、アクションフレームワークですさ、Strutsやストライプ

    ブックス:Core JavaServer Faces (3rd Edition)
    チュートリアル:CoreServlets.com

  • EJB 3.xのはの一部のコンテナでありますスタック。それは依存性注入やBeanライフサイクル管理のようなことをします。 、(もコンテナですが、春は任意のJavaコードで実行できる簡単なメインクラスをEJB 3 in Action

  • 春:JavaEE 6 Tutorial: EJB
    ブック:あなたは通常、EJB3

    チュートリアルの完全なのJavaEEアプリケーションサーバーを必要としますアプレット、Webアプリケーション、またはJavaEEエンタープライズアプリケーション)。春はほとんどEJBを行うことができるすべてと、より多くを行うことができますが、私はそれが依存性注入と非侵入トランザクション管理

    Online Reference(最高)
    ブックのための最も有名だと言うだろう:私は良い英語を見つけることができませんでした休止
    製造

  • にあるいくつかがスプリング3.xの上の本は、の一部である最初の大きなORM(リレーショナルマッパーオブジェクト)は、Javaプラットフォーム上で、そのようなものとしては、大きく触発たJPA(ましたEJB3標準ですが、EJBコンテナなしで使用できます)。 Pro JPA 2: Mastering the Java™ Persistence API(休止状態固有ではない)、
    Java Persistence with Hibernate(少し古い取得)

  • :私は、JPAに対してコーディングおよび唯一のプロバイダとして、休止状態使用して、簡単でEclipseLinkなどに

    ブックを切り替えることができ、そのように示唆しています

+0

など、ほとんどの他のテクノロジーとうまく統合されています。感謝します – user261002

+8

明示的に言うと、SpringはEJBが完全なアプリケーションサーバーを必要とするJVMを必要とします – boardtc

+0

@boardtc Springは少なくともサーブレットコンテナを必要としますか? AFAIK、Springは埋め込まれたTomcatインスタンスを使用します。 – Utku

4

EJBはEnterprise Java Beanです - 説明についてはリンクを参照してくださいが、基本的にはエンタープライズアプリケーションを作成するための「デフォルトの」Javaの方法です。

HibernateはORMフレームワークです。アプリケーションのオブジェクト/クラスをデータベーステーブルにマップする方法。これは、データをデータベースに保存する方法に関連しています。

Springは、IoC/Dependency Injectionコンテナで、多くの有用で十分にテストされた抽象化を提供し、より簡単に使用できます。 Springは、独自のアプリケーションフレームワークのようなものです。

JSFは、Java WebアプリケーションのビューテクノロジであるJava Server Facesです。

EJBまたはSpringのいずれかを使用します。必要に応じて、永続化の実装としてHibernateを使用することもできます。あなたはこれをする必要はありません。 RESTFul Webサービスの場合、JSFは本当に必要ありません。

人々は春に非常に満足している - 私はそれを使用することをお勧め...

2
  • JSFは - Javaのサーバーが顔 - > [Webユーザーインターフェース
  • EJB - エンタープライズJavaビーンズ - >ステートフルなコンポーネント(sessioen指向)またはstatles(サービス)、メッセージドリブン(非同期)
  • 休止状態 - 他のJPA実装(EclipseLinkは、OpenJPAのまたはTopLinkのような永続サービス)
  • 春は、他のビューの技術を統合することができたEJBのない別の世界、です。柔軟性がなくなった。

JEE5/6とスプリングの間で決定する必要があります。赤または青の丸薬は両方を使用しないでください。

+2

ニースの概要。しかし、赤色または青色の丸薬に​​ついて:Springは、EJB http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ejb.html –

6
  • JSF: - GUIフレームワークあなただけのバックエンド
  • EJB実装したい場合は、これを必要としない:分散コンポーネントのための標準的な、恐ろしく複雑にするために使用しますが、標準のバージョン3は、非常に使いやすい。これはあなたのソリューションの一部である可能性があります。
  • Hibernate:オブジェクトリレーショナルマッピングフレームワーク。これは、JPA(Java Persistence Architecture)標準のインスピレーションとして役立ちました。これは現在、HibernateとEJBの両方でサポートされています。
  • Spring:依存性注入、Web GUI、AOPの中で、あらゆる種類のことをするアプリケーションフレームワーク。

ただし、RESTを実行する場合は、最も重要な標準はJAX-RSです。 Springフレームワーク内で使用することも、EJBで使用することもできます。永続性のために、HibernateやGlassFishなどのEJBコンテナのJPA実装を使用することができます

関連する問題