VMware は Spring Boot 2.6 をリリースした。2021年の2番目で最後の機能リリースで、Docker イメージ構築の改善、より多くのヘルスおよび管理情報の提供、WebTestClient
インターフェイスを使用して Spring MVC アプリケーションをテストできるようにする。このリリースでは、Spring Security 5.6、Spring Data 2021.1、Spring Kafka 2.8、Hibernate 5.6、Kotlin 1.6、および JUnit 5.8 などの依存関係も更新している。
Log4jShell 脆弱性の修正
先ごろ、人気のある Log4j ライブラリに深刻な脆弱性が発見され、攻撃者が悪意のあるコードをリモートで実行できるようになった。Spring Boot チームは、Log4j がデフォルトのログライブラリとして選択された場合のみユーザに影響があると報告している。Log4j の脆弱性の詳細については、この InfoQ のニュース記事に記載されている。
Spring Boot 3 が大きく迫る
VMware は現在、Spring と Spring Boot をオーバーホールしている。Spring 6 では、最小バージョンとして Java 17 と Jakarta EE 9 が必要になり、Java modules とネイティブコンパイルのファーストクラスのサポートを提供する。ネイティブにコンパイルされた Java アプリケーションは、起動がはるかに速く、実行時のメモリ使用量が少なくなる。Spring 6 はまた、可観測性を Spring に焼き付け、古い機能とサードパーティの統合を削除する。Spring Boot 3 は Spring 6 を使用し、早ければ2022年の終わりが予定される。
Spring Native は、Spring アプリケーションのネイティブ実行可能ファイルを作成する。その 0.11 リリースは、GraalVM 21.3 と Spring Boot 2.6 に依存している。
この発表で、Spring Boot 2.4 の最後のオープンソースリリースとして Spring Boot 2.4.13 が呼び出されました。これは、新しい6か月のリリースリズムで Spring Boot リリースの有効期間が短さを示している。Spring Boot 2.2 は 456 日、Spring Boot 2.3 は 391 日、Spring Boot 2.4 は 371 日に短縮されている。VMware が最近の説明のように、この傾向は Spring 6 と Spring Boot 3 でも続くことが予想される:
Spring Framework 6 のユーザは、機能リリースのストリームに参加することを強くお勧めします。6.0.x に長期間とどまることに期待せず、6.1、6.2 などのアップグレードを通常の使用モデルの一部にします。
Spring Boot リリース 2.2 以降では、引き続き商用サポートが利用できる。
2.6 リリースからわずか10日後に Spring Boot 2.6.1 が続いた。Spring Boot バージョン 2.3、2.4、および 2.5 は、最初のポイントリリースまでに2から3倍長くかかっていた。それぞれ、28日、29日、そして20日だ。
このリリースの注目すべき変更
Docker イメージのビルドには、さまざまな改善が見られる。イメージに追加のタグ付けが可能で、Cloud Native Buildpacks ビルダプロセスを実行するコンテナのネットワークドライバの構成ができ、ビルドパックがイメージレイヤをキャッシュするために使用するボリューム名をカスタマイズできる。
ヘルスグループは、セキュリティ向上のために、メインまたは管理ポートのいずれかで追加のパスを使用できるようになった。Kubernetes の活性と準備チェックはこの機能の恩恵を受ける。ヘルスグループは、CompositeHealthContributor
インターフェイスの一部を含めたり除外することもできる。
Spring Boot は、アプリケーションの開始時間、アプリケーションの準備までの時間、現在の作業ディレクトリのパーティションの空きディスク容量と合計ディスク容量、スレッドプールの統計、Jetty 接続と SSL の統計などの新しいメトリックを公開する。Spring Boot は、メトリックを Dynatrace v2 API にエクスポートできるようになった。
Spring Boot は、Spring Data Envers と Spring AMQP の新しい spring-rabbit-stream
モジュールのオートコンフィグレーションを提供する。Spring Integration PollerMetadata
(無制限の数のメッセージをポーリングする) は、spring.integration.poller.*
プロパティを通じてカスタマイズできるようになった。
Log4j2 の複合構成が使用できるようになった。logging.log4j2.config.override
プロパティを構成ファイルのコンマ区切りのリストに設定すると、メインの構成がオーバーライドされる。アプリケーションは、servlet アプリケーションのセッション cookie に「SameSite
」属性を設定できる。
アプリケーションの messages.properties
が Bean Validation メッセージの {parameters}
の解決時に、使用されるようになった。リアクティブサーバのセッションプロパティは server.reactive.session
の下で利用でき、servlet バージョンと同等の機能を提供する。
新しいアノテーション @WebServiceServerTest
は、@Endpoint
Beans を使ってテストを作成し、Web サービスエンドポイントをテストするために MockWebServiceClient
Bean を自動構成する。
Maven プラグインの start
ゴールの wait
プロパティと maxAttempts
プロパティが、コマンドラインから構成できるようになった。また、特定のプロパティは、Spring Boot Maven または Gradle プラグインによって生成される build-info.properties
から除外できる。
このリリースでは、Spring HATEOAS 1.4、Spring AMQP 2.4、および Spring Session 2021.1.0 の更新も提供される。その他の注目すべき Spring 以外の更新では、データベースドライバ、Micrometer 1.8、および Mockito 4.0だ。
リリースノートには、すべてのアップグレードと注目すべき変更が記載されている。