10月27日、Spring BootチームはSpring Boot 3.4.0-RC1をリリースした。
今回のリリースには、142の機能強化、ドキュメントの改善、依存関係のアップグレード、バグ修正が含まれており、Spring Boot 3.3からの大きな変更点も多く含まれている。以下は、主な新機能およびSpring Boot 3.3からの変更点の概要である。
3.4.0-RC1での変更点
Buildpacksのサポート更新
ARMおよびx86アーキテクチャに対応するBuildpacksのサポートが強化された。ClientHttpRequestFactoryのサポート改善
新しいビルダーを含む拡張されたカスタマイズオプションが追加され、ClientHttpRequestFactoryの利用がより柔軟になった。Actuatorエンドポイントへのアクセス制御強化
Actuatorエンドポイントのアクセス制御モデルが再設計され、読み取り専用アクセスの追加や完全な無効化など、細かなアクセス設定が可能になった。従来のmanagement.endpoints.enabled-by-default
とmanagement.endpoint.<id>.enabled
は、それぞれmanagement.endpoints.access.default
およびmanagement.endpoint.<id>.access
に置き換えられ、エンドポイントへのアクセス権限を制御する新しいプロパティも導入されている。さらに、management.endpoints.access.max-permitted
を使用することで、特定のエンドポイントへのアクセスレベルを上限設定できる。
3.3からの変更点
Beanベースの条件指定(@ConditionalOnBean, @ConditionalOnMissingBean)
@Bean
メソッドで@ConditionalOnBean
や@ConditionalOnMissingBean
を使用する際、Spring Boot 3.4からはアノテーションの属性が設定されている場合にデフォルトの型が適用されないように変更された。従来の挙動を維持するには、@Bean
メソッドの戻り型とアノテーションの両方を指定する必要がある。RestClientとRestTemplateの自動設定
RestClientおよびRestTemplateの自動設定により、Apache HTTP Components、Jetty Client、Reactor Netty、JDK HttpClientのいずれかが選択可能となった。デフォルトではクラスパス上に最も優先順位の高いHTTPクライアントが選ばれるが、spring.http.client.factory
プロパティで明示的に選択できる。また、リダイレクトのデフォルト設定が追従するようになっており、これを無効にするにはspring.http.client.redirects
をdont-follow
に設定する。Testcontainersでの動的プロパティの管理
動的プロパティを定義するためにDynamicPropertyRegistry
を注入するサポートが非推奨となり、代わりにDynamicPropertyRegistrar
を返す別の@Bean
メソッドを実装することが推奨されている。従来の方法を使用したい場合は、spring.testcontainers.dynamic-property-registry-injection
をwarn
またはallow
に設定することで、制約付きで使用可能である。OkHttp依存関係の管理の削除
Spring Boot 3.4からはOkHttpへの依存が除外され、依存関係のバージョン管理が行われなくなった。そのため、OkHttpを使用しているアプリケーションは、適切なバージョンを手動で設定する必要がある。
このように、Spring Boot 3.4ではユーザーにとって利便性とセキュリティが大幅に向上している。詳細についてはSpring Boot 3.4.0-RC1 available nowを参照していただきたい。