2016-06-22 9 views
4

私はWebアプリケーション(JSP/Servetsを使用)でいくつかの経験があります。コアJava。また、Spring MVCフレームワークの開発にもいくつかの経験があります。Spring FrameworkとJava EE

私はSpringの歴史とこのフレームワークの作成を誘惑する原動力を読みました。

Java EEとSpring Frameworkの関係について混乱しています。例:

1)Spring MVC またはプレーンJSP /サーブレットを使用してWebアプリケーションを作成できます。

私はSpring MVCをさらに詳しく調べて、Spring MVCがサーブレットの上に抽象レイヤーを提供すること、つまりWebアプリケーションを作成するための開発が容易であることを知りました。

2)Spring JPA:やはり、Spring JPAは下のJPAプロバイダを使用する抽象レイヤーです。

ここで、Spring Frameworkは抽象レイヤーを提供し、内部的にはJava EEテクノロジーを使用しているようです。

上記の理解が正しい場合、SpringフレームワークはJava EEよりもどのように優れていますか? Spring FrameworkがJava EEの代替手段であると私は何度も読んでいます(オンライン)。 Spring FrameworkがJava EEによって提供される技術を内部的に使用する場合、Spring FrameworkはJava EEの代替手段となりますか?

この疑問を明確にするための簡単な言葉での説明は高く評価されます。

+0

あなたはこれを参照することができます。それは役に立つかもしれません。 http://www.adam-bien.com/roller/abien/entry/java_ee_6_ejb_3#comment-1246994930760 – Unknown

+0

@FarazDurraniこれらはいずれもSpring固有のものではありません。 10種類のエンドポイントを扱う単一のサーブレットを持つことができます。Java EEにはRESTサポートとWebsocketサポートがあります。 Java EEは非常にゆっくり進化したので、Springはより速く動いていました。最近の違いは小さくなっています。 – Kayaman

+0

@Kayamanあなたは正しいです –

答えて

5

Spring Frameworkには、モデルビューコントローラ(MVC)パターンフレームワークがあり、 インタラクティブなWebアプリケーションの作成プロセスを簡略化します。サーブレット、HttpServletRequests、HttpServletResponses、およびJSPへの転送の複雑さ を手動で処理する代わりに、Spring がこれらのタスクを処理します。コントローラクラスの各メソッドは、異なるリクエストURL、 メソッド、またはリクエストのその他のプロパティにマップされます。モデルはコントローラからマップの 形式のビューに渡されます。コントローラ メソッドから返されたViewまたはviewの名前(String)は、Springを適切なJSPビューに転送します。リクエストとURLパスのパラメータは、 がプリミティブまたはコントローラのメソッドの引数に自動的に変換されます。 一般的なHTMLビューに加えて、Springはプレーンテキストビューを自動的に生成し、 ビューとXMLまたはJSONエンティティビューをダウンロードできます。これらすべての機能により、Spring Framework は、サーブレットコンテナでの作業を大幅に簡素化します。現実世界のシナリオでは

、あなたはデスクトップアプリケーション、Webブラウザ、モバイルWebブラウザ、 RESTful Webサービス、およびSOAP Webサービスからアクセスできる必要があり 機能の何千もの高度なアプリケーションを作成するために求められることがあります。サーブレットのみを使用すると、このタスクはすぐに になります。最終的に多くのコードを複製したり、多くのユーザーインターフェイスから使用される一連の他のクラスに抽象化された に独自のシステムを作成することになります。 幸運なことに、Spring Frameworkはこのようなシステムを提供しており、テスト済みであり、あなたが少しでも努力を払って使用する準備ができています。 Springを使用すると、ビジネス・ロジックはサービスと呼ばれるビジネス・オブジェクト のセットにカプセル化されます。これらのサービスは、特定のエンティティプロパティが正しく指定されていることを確認するなど、すべてのユーザーインターフェイスに共通の操作を実行します。アプリケーションには、各ユーザーインターフェイスのコントローラとビューの異なるセット が含まれています。これらは、共通のビジネスオブジェクトを使用して重要な操作を実行します( )。フォーム送信やJSONリクエストボディをエンティティに変換し、適切なビューをユーザに表示するなど、ユーザインターフェイス固有の 操作だけを実行するにはコントローラが必要です。単体テストがより簡単になり、コードが再利用され、両方を達成するために必要な作業はほとんどありません。

モジュラーの概念とテスト可能なコードを使用すると、すべてのタイプのアプリケーションを迅速に開発できます。 「要求」と「応答」の概念を抽象化し、さまざまなインターフェイスから利用できる アプリケーションコードを記述することができます。 Spring Frameworkは、Inversion of Control、Dependency 注入、抽象データアクセス、トランザクション管理など多くの便利な機能を に提供するJavaのアプリケーションコンテナです。 多くの場合、Enterprise JavaBeans(カプセル化された Beansを使用してモジュラ形式で エンタープライズアプリケーションを構築するためのJava EEサーバー側コンポーネントであるEJB)の代替または補完として考えられるSpring Frameworkコンテナは、Java EE Application Server 、Java EE Web Container、またはJava SEスタンドアロンのアプリケーション(サーバーデーモンとデスクトップアプリケーションを含む) です。

制御と依存性注入の反転フレームワークの主な機能は、Inversion of Control(IoC)と依存性注入(DI)の密接に関連した概念のサポートです。 IoCは、 ソフトウェアデザインパターンであり、アセンブラ(この場合はSpring Framework)は、コンパイル時ではなく実行時にオブジェクト結合をバインドします。 DIが最も一般的な手法です。 DIを使用してプログラムコード( Spring Framework、クラス)はプログラムコード(インターフェイス)の別の部分 に依存し、実行時には インスタンスを挿入します(通常は必ずしもシングルトンではありません) )その依存の。 (書籍からの引用:ニコラス・S.ウィリアムズによってWebアプリケーション用のプロフェッショナルJava)の

関連する問題