Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは:Springフレームワークの中核となる2つのプロジェクトの違いを解説
TechTargetは「Spring BootとSpring MVCの違い」を解説する記事を公開した。Spring Bootは事前構成済みのSpringアプリケーションの作成を可能にするソフトウェア開発アクセラレータであるのに対し、Spring MVCはSpringベースのプロジェクトの選択肢の一つにすぎない。
TechTargetは2024年8月26日(米国時間)、Webアプリケーションを作成するためのフレームワーク「Spring BootとSpring MVCの違い」を解説する記事を公開した。
「Spring Boot」と「Spring MVC」の主な違いは、Spring Bootは100を超えるSpringプロジェクトとライブラリを備えた事前構成済み環境により、Springアプリケーションの開発をスピードアップするのに対し、Spring MVCはSpringベースのプロジェクトの選択肢の一つに過ぎない点にある。
SpringとSpring Framework
2004年に「Spring Framework」がリリースされて以降、Springの依存関係の注入と制御の反転コンテナを基盤に構築される多くのプロジェクトが登場している。中でも、以下のようなプロジェクトの人気が高い。
- Spring Data and JPA
- Spring REST and HATEOAS
- Spring Security
- Spring JDBC and H2
- Spring AI with OpenAPI
Spring Web MVCとSpring Boot
中でも最も人気が高いSpringプロジェクトは「Spring Web」だ。人気の理由は、RESTful Webサービスをサポートしていること。Spring Webプロジェクトには、SpringのMVC Webフレームワークが含まれている。
つまり、Spring MVCは、開発者が自身のSpringベースのプロジェクトに含めることができる人気の高いテクノロジーのうちの一つにすぎない。
近代的なアプリケーションの大半にはRESTful APIが必要なため、Springベースのマイクロサービスの大半にSpring Webプロジェクトが含まれる。その結果として、Spring MVCの「Controller」や「RestController」などのアノテーションが利用可能になる。
ただし、開発者は自身のマイクロサービスにSpring Web MVCを含めなくてもよい。Spring Web MVCのサポートを含めずにクラウドネイティブアプリケーションを作成しても問題はない。Spring Webプロジェクト(およびそれに含まれるSpring Web MVC)は必須ではない。
Spring BootとSpring MVC
Springを使用するソフトウェア開発プロジェクトを組み立てる方法はたくさんある。開発者は、JARファイルのダウンロード、「Gradle」による依存関係の管理、「Maven」で作成されたPOMファイルの編集が可能だが、いずれかのアプローチが特に簡単というわけではない。
複数のSpringプロジェクトを使用する大規模プロジェクトで、複数のバックエンドデータベースまたは他の外部リソースと統合する可能性のある場合は、構成が難しくなることがある。そこで役に立つのがSpring Bootだ。
Spring Bootでは、「Spring Initializr」というグラフィカルインタフェースが開発者向けに用意されている。ソフトウェアアーキテクトはこのインタフェースを使用して、Springのプロジェクトと、そのプロジェクトがサポートする外部テクノロジーを選択する。すると、選択したプロジェクトとテクノロジーがSpring Bootによって事前に構成され、動作するスケルトンアプリケーションが作成される。
Spring BootによってSpringアプリケーションを迅速にブートストラップ(bootstrap)できることから、Spring Bootと名付けられている。
Spring MVCとSpring Bootの違い
Spring MVCとは、Spring Webスタータープロジェクト内にパッケージ化された人気のある技術で。サーバ側WebアプリケーションやRESTful APIをビルドするのに役立つ。
一方のSpring Bootは、希望するプロジェクトやテクノロジー(Spring MVCを含む場合と含まない場合がある)を使用するSpringベースの基本的なアプリケーションをビルド可能にするプロジェクトアクセラレータだ。この点が、Spring BootとSpring MVCの主な違いになる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SpringコードをGoogle Cloud Platformで簡単に実行できる――Google、「Spring Cloud GCP」プロジェクトを発表
GoogleとPivotalは、SpringアプリケーションをGoogle Cloud Platformで簡単に実行できるようにする「Spring Cloud GCP」プロジェクトに乗り出している。 - Strutsを使い続けることの問題点&現在有力なJava EE、Spring、Play Frameworkの基礎知識とアーキテクチャ
新規のエンタープライズJava開発において現在有力視される3つのフレームの違いについて解説する連載。初回は、Strutsを使い続けることの問題点と3つの概要、アーキテクチャ、使い分けについて。 - マイクロサービス移行後のテスト、CI/CD、運用監視で現場が疲弊しないためのポイント
マイクロサービスアーキテクチャへの移行を進める上で生まれた課題にどう取り組んだのか。オイシックス・ラ・大地の川上徹氏がOisixのマイクロサービス移行後のテスト、CI/CD、運用監視を紹介します。