BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring Boot 2.6でDockerイメージとメトリックスの改善、バージョン 2.4がEOLに

Spring Boot 2.6でDockerイメージとメトリックスの改善、バージョン 2.4がEOLに

原文(投稿日:2021/12/17)へのリンク

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だ。

リリースノートには、すべてのアップグレードと注目すべき変更が記載されている。

作者について

この記事に星をつける

おすすめ度
スタイル

BT