Introducing Spring Framework 5.3
本セッションでは、オープニング・キーノートでも講演したVMwareのJuergen Hoeller氏から、もうすぐリリースされるSpring Framework最新版の5.3が紹介されました。
2020年10月にリリースされるSpring Framework 5.3(注:開催時点での予定。その後10月27日にリリースされた)は、5.x系の最後のfeature releaseとして設計されており、Java 14/15のrecordsなどいくつかの新要素に対応しています。
JDKサポートについても言及されており、Spring Framework 5.3では最終的にJDK 8~17に対応し、特にJDK 8、11、17に注力していくとのことです。
その他発表の中で触れられていたトピックとしては、GraalVMのNative Image対応に向けた改善、JDBCサポートの改善、R2DBC対応、内部パフォーマンスのチューニングなどがありました。
また、Spring Framework 5.3.xは2024年まで開発・メンテナンスされ、代表的なSpringの機能を完全にサポートします。いくつかの非推奨はあるものの削除される機能はほとんどないとのことです。
Spring Framework 6.0に向けて削除・再編成を検討しているものとしては、以下の3点が挙げられていました。
- configuration formats(XML)
- EEAPIs(EJB、JCA、JAX-WS)
- RPCサポート(HTTP Invoker)
また、6.0ではJakarta EE 9+への移行を考えており、フレームワークの一部はJakarta名前空間バージョンに切り替わるとのことです。
What’s New in Spring Batch?
VMwareのMahmoud Ben Hassine氏による本セッションでは、最初にSpring Batchの状況について発表があり、4.3のリリースは2020年10月を予定していること(注:開催時点での予定。その後10月28日にリリースされた)、4.3が4.x系としては最後のfeature releaseとなること、リリースサイクルはSpring Frameworkと同様に年単位で計画していることなどが語られました。
次にSpring Batch 4.3における新機能について、Java 14のRecordsへの対応やGraalVMへのサポート、Kafkaサポートの強化やアノテーションによるJob execution listenerのサポート、SynchronizedItemSteamWriterの追加などが発表されました。
中でもJava 14のRecordsへの対応については、Java Beanに付随する形式的なコード(setter/getterなど)を不要にできることなどから、発表者のMahmoud Ben Hassine氏は対応に意欲を見せていました。以下の例はファイルに関するものですが、最終的には、データベースやXML、JSONなどにも対応させることを目標にしているそうです。
その他、性能改善や依存性の更新、開発チームの改善活動や今後のリリース予定などについて紹介があり、セッションは締めくくられました。
The Path Towards Spring Boot Native Applications
SpringOneに参加する大きなメリットは、まだ正式リリースされる前のプロジェクトに関する情報が得られることです。VMwareのAndy Clement氏とSebastien Deleuze氏による本セッションは、そうした情報を得られるセッションの一つでした。
このセッションでは、Spring Bootで実装されたアプリケーションをGraalVMのNative Imageへとコンパイルすることを目的とした、Spring GraalVM Nativeの開発状況が語られました。Native Imageにコンパイルすることができればアプリケーションの起動時間の劇的な短縮とメモリフットプリントの低減が実現できる一方、通常はリフレクションやダイナミックプロキシといった動的な機能を静的に解決するために専用の設定ファイルを用意する必要があります。これに対しDeleuze氏は「目標は既存または新規のSpring Bootアプリケーションを大きな変更なくNative Imageへコンパイルすることである」と述べました。この目標を実現するため、Spring GraalVM NativeにはNative Imageにコンパイルする際に必要な設定の補助情報や、コンパイルプロセスを拡張するモジュールが含まれています。実際にセッション中盤でClement氏が披露したデモでは、明示的に設定ファイルを作成することなくSpring BootアプリケーションをNative Imageにコンパイルしたり、そのNative Imageを含んだ非常にイメージサイズの小さいコンテナを作成したりできることが示されていました。
Spring BootアプリケーションのNative Imageへのコンパイルは現時点ではSpring GraalVM Nativeを利用した実験的な機能として位置づけられていますが、Spring Boot 3では第一級の機能としてサポートすることが予定されているそうです。これについては今後数カ月のうちにまた情報を公開したいとのことでしたので、続報に期待しましょう。