11月21日、Spring Boot 4.0.0がリリースされた。

この記事では、Spring Boot 4.0.0 の正式リリースと、その主な新機能に関する内容について紹介する。
新しい世代の Spring Boot が始動
Spring Boot 4.0.0 が Maven Central で利用可能となり、Spring チームとコミュニティによる貢献を通じて正式に公開された。
本バージョンは Spring Framework 7 を基盤とする新しい世代のスタートであり、長期間の開発を支える基盤強化版として位置づけられている。
新機能のハイライト
Maven Central へのマイルストーン公開
4.0.0-M1 以降、Spring Boot のマイルストーン版とリリース候補版が Maven Central にも公開されるようになった。これにより 4.x 系の新機能を試しやすくなった。
Gradle 9 のサポート
Spring Boot アプリケーションは Gradle 9 に対応した。
従来の Gradle 8.x(8.14 以降)も引き続き利用できる。
HTTP Service Clients の自動構成
HTTP Service Clients を利用したインターフェース定義が自動構成でサポートされた。
Java インターフェースにアノテーションを付与するだけで実装が生成される。
@HttpExchange(url = "https://echo.zuplo.io")
public interface EchoService {
@PostExchange
Map<?, ?> echo(@RequestBody Map<String, String> message);
}
API Versioning の自動構成
Spring MVC / WebFlux 双方で API Versioning の自動構成が追加された。spring.mvc.apiversion.* あるいは spring.webflux.apiversion.* で設定でき、
必要に応じて ApiVersionResolver などのカスタム Bean も利用可能。
JMS:新しい JmsClient API のサポート
JMS の自動構成において、新しい JmsClient API のサポートが追加された。
既存の JmsTemplate などはそのまま利用できる。
Task Decoration の強化
タスクスケジューリング/タスク実行において、複数の TaskDecorator を利用可能になった。
複数存在する場合は CompositeTaskDecorator が生成され、@Order に基づき順次実行される。
OpenTelemetry スターターの新設
spring-boot-starter-opentelemetry が新たに追加された。
OTLP 形式でのメトリクス・トレース送信、OpenTelemetry SDK の自動設定を行う。
外部モジュールの Configuration Properties メタデータ
@ConfigurationProperties クラスが外部モジュールを参照している場合でも、
新しい @ConfigurationPropertiesSource によってメタデータ生成をサポートできるようになった。
SSL Info の変更
証明書の有効期限 “WILL_EXPIRE_SOON” のステータスは廃止され、該当証明書は “VALID” 扱いとなる。
有効期限の開始・終了日時は引き続き提供される。
SSL Health の拡張
期限間近の証明書が expiringChains に一覧化されるようになった。
こちらでも “WILL_EXPIRE_SOON” は使われず、証明書自体は “VALID” と表示される。
MongoDB Health Indicator の改修
Spring Data MongoDB が不要になり、MongoDB Java Driver だけで 健康状態の判定ができるようになった。
ヘルスインジケータは spring-boot-mongodb に移動し、パッケージも変更された。
MongoDB プロパティの追加と変更
新しいプロパティ:
spring.data.mongodb.representation.big-decimal
BigDecimal / BigInteger の保存方法を制御できる。
その他、いくつかの MongoDB 関連プロパティがリネームされている(要 Migration Guide 参照)。
Kotlin Serialization のサポート
spring-boot-kotlin-serialization モジュールおよびスターターが新設された。Json Bean の自動構成や Kotlin Serialization 用 HttpMessageConverter の追加が行われる。
RestTestClient の追加
以下で新しい RestTestClient が利用可能になった。
@SpringBootTest(MockMvc ベース)@AutoConfigureMockMvc- 統合テスト(定義ポートまたはランダムポート)
Redis Static Master/Replica の自動構成
Lettuce のみに対応する新機能として、静的 Master/Replica 構成の自動設定をサポート。
spring.data.redis.masterreplica.nodes
でノード一覧を設定する。
Redis Observability の改善
Redis の計測が従来の MicrometerCommandLatencyRecorder から
MicrometerTracing(Observation API)ベース に移行し、メトリクスだけでなくスパンの取得にも対応した。
既存アプリの移行は慎重に
Spring Boot 4.0 はメジャーリリースであり、Spring Boot 3.5 からの移行には追加作業を伴う可能性がある。
記事では Migration Guide の確認が推奨されている。
詳細はSpring Boot 4.0.0 available nowを参照していただきたい。