私は春を勉強し始めたばかりです。次のステップでは、もっと大きなWebアプリケーションを開発したいと思います。今、私は私がSpring BootとSpring MVCのどちらから始めるべきか疑問に思います。私はすでにいくつかのことを読みましたが、どちらもちょっとよく似ているのでちょっと紛らわしいです。それで、それら2つの違いは何ですか?
@Controller
でアノテーションが付けられたクラスです。そこでは、あなたは異なるHTTPリクエストを使ってアクセスできるメソッドを実装します。 RESTベースのAPIを実装するための同等の@RestController
があります。つまり、Spring MVCはWebアプリケーションで使用されるフレームワークであり、Spring bootはSpringベースのプロダクション対応プロジェクト初期化プログラムです。 SOの Spring MVCタグwiki や Spring Bootタグwiki にアクセスすると便利です。
Spring MVCとSpring Bootは他の回答でよく説明されているので、それを繰り返さずに、私は詳細にまっすぐジャンプしましょう。 Spring BootとSpring MVCは、比較可能ではないか、または相互に排他的です。 Springを使ってWebアプリケーション開発をしたい場合は、とにかくSpring MVCを使用します。あなたの質問は、それからSpring Bootを使うべきかどうかになります。
一般的なSpringアプリケーションの開発やSpringの習得には、Spring Bootを使用することをお勧めします。それは仕事をかなり容易にし、生産準備ができてそして急速に広く採用されています。
STS(Spring Tool Suite)には2つのウィザードがあります。1つはSpring Bootプロジェクトを作成するためのもので、もう1つはSpring MVCプロジェクトを作成するためのものです。だから、私のお勧めは、Spring Bootプロジェクトを作成し、その中のモジュールとしてWebを選択することです。
Spring MVC
は、Spring Frameworkのサブプロジェクトで、MVC(Model-View-Controller)パターンを使用するアプリケーションの設計と開発を目的としています。 Spring MVCは、Spring Frameworkおよび他のほとんどのサブプロジェクトと完全に完全に統合するように設計されています。
Spring Boot
はSpring Engineeringチームによる この記事 から非常によく理解できます。それはおそらく説得力がある、すなわちそれは急速な発展のあるスタイルを強く主張しています、しかしあなたがそうするならば、それは規則への例外を受け入れるのに十分によく設計されています。要するに、それは保証されたときに規約を破る必要があることを理解しても構わないと思っている構成方法論上の規約です。
SpringBootは、実際にはその縮小されたボイラー構成を事前に構成しており、アプリケーションを起動するための最も簡単または迅速な方法を提供します。
SpringBootは、Springではなく開発者から自分自身への設定の頭痛の種を取ります。
暗黙のうちにSpringBootはbean、controller、services、jpaなどのようなSpringフレームワークの概念に基づいています.
SpringBootはSpringのラッパーであると言えます。
SpringBootではデフォルトでServerのポートは8080ですが、変更したい場合はapplication.propertiesに移動して次のように書きます。
server.port = 8084
SpringとSpring Bootを区別する主なポイントは次のとおりです。
春:
Spring Boot:
注:それはすべてのポイントを含んでいません。
スプリングブートを使用すると、構成を構築する必要はありません。これはプロジェクトを作成するときに自動的に行われます。
Spring MVCを使用している場合は、自分で設定を構築する必要があります。もっと複雑ですが、非常に重要です。
これまでの答えで同じことを繰り返さずに、私は新しいプロジェクトを始めようと思っていて、どれが一番良いフレームワークなのかわからない人のためにこの答えを書いています。あなたがこのフレームワークの初心者であれば、私が好む最も良いことはUsespring boot(with STS /Spring Toolです。スイート)。それは大いに役立ちますので。それはすべて独自の設定を行います。さらに、あなたのデータベースを構築するためにspringと共にHibernateを使用してください。それならあなたのアプリケーションは現在最高です。保証できます。
これは現在のJEEにとって最良のフレームワークの1つですが、将来に向けて開発される予定です。軽量の代替品が登場しています。だからあなたの経験で最新の状態に保つことは1つの特定のフレームワークに固執しないでください。最良のことはフレームワークではなく概念に流暢であることです。
Spring MVCは、Spring Frameworkでのモデルビューコントローラー(MVC)ベースのWebフレームワークです。これは、サーブレットAPI上に構築された元のWebフレームワークです。 Webアプリケーションを構築するためのすぐに使用できる機能をいくつか提供します。
カスタマイズ可能なバインディングと検証。
カスタマイズ可能なハンドラーマッピングとビューの解決。
強力なテーマとローカル解像度機能。
Spring Bootは、Springを使用したアプリケーションを構築するためのデフォルト構成を提供することにより、アプリケーションを迅速にセットアップするための強力なユーティリティです。 Spring Bootの機能リストは次のとおりです。
マイクロサービスプラットフォームを使用するのに最適なものの1つ。
プロジェクトの起動および構成段階を大幅に削減する、インテリジェントで慣例的な構成アプローチの使用。
Application.propertiesまたはymlファイルを使用した強力で柔軟な構成管理。
自動構成モジュール。
Spring Bootスターターは、アプリケーションにすぐに使用できる自動構成を提供します。
量産可能なアクチュエータモジュール。
意見を述べることで、Springの依存関係を簡素化します。
簡単に言えば、次のように表現できます。
Spring boot = Spring MVC + Auto Configuration(Don't have to write spring.xml flie for configurations) + Server(You can have Tomcat, Netty, Jetty server).
そして、Spring Bootは意見のあるフレームワークなので、その開発は迅速な開発、設定のためのより少ない時間の必要性、そして非常に良いコミュニティサポートを考慮しています。