Raw Javaサーブレットで、またはSpring MVC(またはその他のフレームワーク)を使用して)Webアプリケーションを構築する必要がある理由は何ですか?
Spring MVCを避けるべき例外はありますか?Rawサーブレットでそれを行うことの利点は何ですか?
後で拡張するつもりがなく、非常に迅速でダーティなデモを作成している場合、Springは多くの追加の構成の問題を引き起こす可能性があります(以前に行ったことがない場合は、実際にはそうではありませんが、私は常にそれと戦うことになります)何らかの方法で)、そのため、プレーンな古いサーブレットを使用することを検討する時期かもしれません。ただし、一般的には、超高速でダーティなデモだけでなく、何らかの形のMVCフレームワークを使用すると、将来の作業が非常に簡単になり、ベストプラクティスに沿ったものになります。 Springは物事を非常に簡単にします。すべてを構成するフロントエンドに少し時間を費やす必要があります。
JavaサーブレットではSpringでできないことは何もできません。大きな違いはセットアップ時間です。
編集:この回答を投稿したときに、組み込みのいずれかを使用して実行するのが実際には非常に簡単なSpring Bootに気付かなかったことに注目する価値がありますWebサーバーまたはより一般的なWebコンテナ。クイックスタートの例へのリンクは次のとおりです。 http://projects.spring.io/spring-boot/#quick-start
サーブレットテクノロジーは、より一般的な要求/応答パラダイムのサーバー側拡張に使用されます。また、SpringはHTTP経由のWebアプリケーションにそれを使用します。
そして、ここからの引用: http://www.reddit.com/r/Java/comments/29f3ul/why_is_spring_mvc_better_than_servlets_jsp/
サーブレットは、要求と応答を処理するための低レベルAPIに基づいています。 Spring MVCのようなWebフレームワークは、HTTP要求と応答を処理するWebアプリケーションを簡単に構築できるように設計されています。ほとんどのJava Spring MVCを含むWebフレームワークは、舞台裏でサーブレットを使用します。
サーブレットを使用してWebアプリケーションを作成できますが、すべての詳細を手動で処理する必要があります。検証、REST、JSONのリクエスト/レスポンスボディ、フォームバインディングなどの典型的なWebに関するヘルプはほとんど得られません。Webアプリケーションをサポートするためのユーティリティコードをたくさん書くことになります。
一方、Webフレームワークは、これらすべてをシンプルにするように設計されています。 Spring MVCを使用すると、必要に応じてアクセスおよびアクセスできる場合でも、要求と応答を手動で処理することに煩わされることはありません。 Spring MVCでJSONを返したいですか? @ResponseBodyアノテーションを追加するだけで、Springが追加します。 RESTfulなURLが必要ですか?簡単です。入力検証?ケーキ。フォームデータをオブジェクトにバインドしますか?シンプル。サーブレットでは、このすべてを手動で行う必要があります。
ただし、生のサーブレットを使用することは、良い学習経験になる場合があります。それは本当にWebフレームワークがあなたの生活を楽にする方法を明確にするのに役立ちます!
私は生のサーブレットとWebアプリフレームワークの両方でプロジェクトを開発しました。フレームワークはあなたにすべてを与えます、あなたが必要とするのは環境をセットアップして設定することだけです、コーディングははるかに簡単です。その結果、Web開発について何も知りません。ただし、未加工のAPIとサーブレットを含むコードを使用すると、経験を積んでプログラマーになるチャンスがあります。
春はあまり使いません。しかし、それがパフォーマンスにどのように大きな影響を与えるかはわかりません。 MVCは役立ちますが、混乱や余分な作業やフラストレーションを引き起こす可能性があります。 1人のプログラマーが実装するほとんどのプロジェクトには、古い良い方法で十分です。 MVCは、複数の開発者がいる場合に役立ちます。
ほとんどのプロジェクトでプレーンなサーブレット/ jspを使用します。再利用可能なコンポーネントが必要な場合は、改札を使用します。サーブレットは、JSP/freemarker/velocityまたはその他のプレゼンテーション用テンプレートエンジンと連携しています。
サーブレット/ JSPの命名パターンに従っている場合、Spring MVCは必要ないと思います。
Springバージョン3以降を追加すると、bootstrapすべての基本を備えたSpring Webアプリケーションがはるかに簡単になります。SpringMVCの利点は、アプリケーションコンテキストとデータベース接続により、新しいコントローラーを作成するのは非常に簡単になり、新しい開発者がそれに慣れるにつれて、より簡単に見つけることができるはるかに多くのロジックアーキテクチャに従います。
実際、私の以前の勤務先では、JavaサーブレットWebアプリケーションを構築していましたが、独自のアーキテクチャまたはアプリケーションのスパインを作成する必要があり、 Springはそれを処理することができます。つまり、開発者はアーキテクチャについてあまり心配することなく、実際のアプリケーションロジックに取り掛かることができます。