← 開発ノート

Spring Boot のリリース履歴と Spring Framework の版の対応

この記事の目次

Spring Boot と Spring Framework は、異なる版番号を持つ別のプロジェクトです。Boot は Framework に自動設定、依存管理、実行可能なパッケージ化を加えます。Boot 3.1 を Framework 6.1 と読むのは不確実なので、選んだ Boot の BOM と解決済み依存グラフを確認します。

処理の流れ

実際のコンポーネントの版を調べる流れ

図はリリース年表ではなく依存確認を示します。Boot、Framework、Lombok は、それぞれ版と依存設定が別です。

主な正式リリースの変更

この年表はすべてのリリースではなく機能の変化を示します。最初の正式版と、その後のパッチで拡大された JDK 対応を区別します。

Spring Boot 最初の正式版 主な変更と公式発表
1.2 2014-12-11 @SpringBootApplication と Servlet 3.1 対応
1.3 2015-11-16 DevTools、キャッシュ自動設定、直接実行可能な JAR
1.4 2016-07-28 起動失敗分析とテスト支援の改善
2.0 2018-03-01 Framework 5.0、Java 8 基準、リアクティブ Web 対応
3.0 2022-11-24 Framework 6.0、Java 17 基準、Jakarta、ネイティブイメージ
3.1 2023-05-18 開発時の Testcontainers と Docker Compose 統合
3.2 2023-11-23 仮想スレッド、RestClient、JdbcClient 対応
4.0 2025-11-20 Framework 7、モジュール化、JSpecify、API バージョニング

たとえば Boot 3.1.0 の管理依存一覧は spring-core 6.0.9 を指定します。Boot と Framework のマイナー番号が一致する必要はありません。Boot 2.4 を存在しない Framework 5.4 系列へ対応させるのも誤りです。

Starter、BOM、ビルドプラグイン

Starter は機能に必要な依存をまとめます。BOM は版を管理し、一覧の全ライブラリを自動でプロジェクトに追加はしません。Boot のビルドプラグインは bootRun などのタスクと実行可能 JAR の作成を提供します。

Gradle 向けの Boot 依存管理ガイドは依存管理プラグインとネイティブ BOM 対応を説明します。Boot プラグインの適用だけで全 Gradle 設定が版なしの依存を受け付けるとは限りません。注釈プロセッサーなど別の設定も確認します。

プロジェクトの実際の版を調べる

Initializr と Lombok ガイドの完成したプロジェクトで次を実行します。

./gradlew dependencyInsight --configuration runtimeClasspath --dependency spring-core
./gradlew dependencyInsight --configuration annotationProcessor --dependency lombok

ローカルの例は Boot 4.1.2、spring-core 7.0.10、Lombok 1.18.48 に解決されます。番号が違うのはプロジェクトが別だからです。dependencyInsight は選択版とその依存経路や規則を示すため、競合調査に役立ちます。これはこの例の記録であり、将来の既定値や全プロジェクト共通の組み合わせではありません。

年表は現在のサポート期間表ではありません。作成や更新時は、選ぶ版の要件、依存互換性、サポート方針を別に確認します。Java 17 と Jakarta の移行で Boot 3 への手順を確認し、ローカル実行は IntelliJ と Gradle の実行確認を参照してください。

コメント

GitHubで見る ↗