さまざまなJavaフレームワークと非常に混同しています。 Javaサーバープロジェクトを作成して、RestfulなWebサービスを提供したいのですが、どのフレームワークを選択すべきか本当にわかりません。 JSF、EJB、Hibernate、Springの違いは何ですか?もっと理解してください。
これらは異なるレイヤーのフレームワークです。
[〜#〜] jsf [〜#〜]はビュー(Web)レイヤー用で、コンポーネント指向のフレームワークです(ページのすべての部分がコンポーネント、状態を持つ)WicketやTapestryのような、Spring MVC、Struts、Stripesのようなアクションフレームワークとは異なります
書籍: Core JavaServer Faces(3rd Edition)
チュートリアル: CoreServlets.com
EJB 3.xは、 JavaEE スタックの一部であるコンテナです。依存性注入やBeanライフサイクル管理などを行います。通常、EJB3用の完全なJavaEEアプリケーションサーバーが必要です。
チュートリアル: JavaEE 6チュートリアル:EJB
本: EJB 3の実際
Springもコンテナですが、SpringはJavaコード(単純なメインクラス、アプレット、Webアプリ)で実行できますまたはJavaEEエンタープライズアプリ)。 SpringはEJBができることのほとんどすべてを行うことができますが、依存性注入と非侵入型トランザクション管理で最も有名だと思います
オンラインリファレンス (優秀)
本:Spring 3.xで良い英語の本を見つけることができませんでしたが、いくつかは作成中です
Hibernateは最初の大きなものでした [〜#〜] orm [〜#〜] (オブジェクトリレーショナルマッパー)Javaプラットフォーム、およびそのようなものとして大きく影響を受けた[〜#〜] jpa [〜#〜](EJB3標準の一部ただし、EJBコンテナなしで使用できます)。 JPAに対してコーディングし、Hibernateをプロバイダーとしてのみ使用することをお勧めします。この方法でEclipseLinkなどに簡単に切り替えることができます。
書籍: Pro JPA 2:Java™Persistence APIをマスターする (休止状態固有ではない)、
HibernateでのJava Persistence (少し古くなっています)
ただし、RESTを実行する場合、最も重要な標準は JAX-RS です。 Springフレームワーク内またはEJBで使用できます。永続化のために、Hibernate、またはGlassfishなどのEJBコンテナのJPA実装を使用できます
EJBは Enterprise Java Bean -説明についてはリンクを参照してください。ただし、基本的には 'default' Javaエンタープライズアプリケーション。
HibernateはORMフレームワークです。アプリケーションのオブジェクト/クラスをデータベーステーブルにマップする方法。データをデータベースに永続化する方法に関連しています。
Springは、IoC/Dependency Injectionコンテナーであり、多くの便利で十分にテストされた抽象化を提供して、生活を楽にします。 Springは、独自のアプリケーションフレームワークのようなものです。
JSFはJava Server Faces、Java Webアプリケーションのビューテクノロジです。
EJB OR Spring。どちらかを使用して、必要に応じてHibernateを永続化実装として使用できます。これを行う必要はありません。RESTFulWebサービスの場合、実際にはJSFが必要です。
人々は春に非常に満足しています-私はそれを使用することをお勧めします...
あなたはJEE5/6と春の間で決定する必要があります。赤または青の錠剤を服用しないでください。