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