Spring Framework は、Java EE 時代の複雑な設定をシンプルにするために生まれたアプリケーションフレームワークです。しかし、Spring Framework 自体もプロジェクトが大規模化するにつれて、XML 設定や依存関係の管理、外部 Tomcat へのデプロイなど、初期構築や設定作業の負担が大きくなっていきました。 こうした「Spring を使うための準備が重い」という課題を解消するために登場したのが Spring Boot です。Spring Boot は Spring Framework の上に乗りつつ、アプリケーションの起動方法や構成そのものを大きく変える仕組みを提供します。
Spring Boot は Spring Framework の後継ではなく、単に「便利な機能を追加する」レベルのものでもありません。以下見てもらうと分かりますが、フォルダ構成や起動モデルが大きく異なるのは、Spring Boot がアプリケーション構築の前提そのものを置き換えているからです。既存の Spring アプリを Spring Boot 化するには、設定を少し足すだけではなく、構築モデルそのものを見直す“置き換え”に近い作業が必要になります。
Springのフォルダ構成
プロジェクト/
├── src/
│ └── main/
│ ├── java/
│ │ └── com/example/
│ │ ├── controller/
│ │ ├── service/
│ │ └── dao/
│ ├── resources/
│ │ └── applicationContext.xml ← Spring設定ファイル
│ └── webapp/ ← これがSpring Bootにはない
│ ├── WEB-INF/
│ │ ├── web.xml ← サーブレット設定
│ │ └── dispatcher-servlet.xml
│ └── jsp/ ← JSPファイル
└── pom.xml
Spring Bootのフォルダ構成
プロジェクト/
├── src/
│ └── main/
│ ├── java/
│ │ └── com/example/
│ │ ├── controller/
│ │ ├── service/
│ │ └── repository/
│ └── resources/
│ ├── application.properties ← 設定はここだけ
│ ├── static/ ← CSS・JS・画像
│ └── templates/ ← Thymeleafなどのテンプレート
└── pom.xml
主な違い
※ここでいう「素の Spring」は Spring Framework(Boot なし)のことです。
| 素のSpring | Spring Boot | |
|---|---|---|
| webapp/ | あり | JSPを使わないなら削除できる |
| web.xml | 必須 | 不要。サーブレット設定のデフォルト値を変更したい場合application.propertiesに書く |
| XMLの設定ファイル | 大量にある | ほぼなし |
| JSP | よく使う | 非推奨 |
| 画面テンプレート | JSP | Thymeleaf等 |
| 設定 | XML | application.properties |

