SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

SpringOne Essentialsで紹介されたSpringアプリケーション最新情報~Spring Framework 6.0、GraalVMなど

From Spring Native to Spring Boot 3

 本セッションでは、実験的プロジェクトであるSpring Nativeが提供するネイティブイメージへのコンパイル機能がSpring Boot 3でサポートされるようになったことで、Springにおけるネイティブアプリケーションがどのような進化を遂げたのかについての説明がなされました。

 セッションの序盤では、ネイティブアプリケーションにより得られるメリットとして、起動が高速かつ安定稼働までの待ち時間も少なく、軽量でセキュアになる点があるとして、コンテナ上での利用にも触れながらの振り返りがありました。

ネイティブコンパイルのメリット
ネイティブコンパイルのメリット

 その一方で、ネイティブアプリケーションはコンパイルに時間がかかるというデメリットがあるため、頻繁にデプロイを行う場合、膨大なメモリとCPUで動作する前提のモノリシックアプリケーションの場合等についてはJava VM上での動作の方が適切であることもあるなど、ネイティブアプリケーションとするべきかについては適宜評価する必要があると補足されました。

 続いて、Spring Boot 2で開発したアプリケーションをネイティブサポートするにあたりSpring Boot 3にアップグレードしながらマイグレーションする方法の説明がありました。Jakarta EE対応のためのパッケージ名修正は当然必要ですが、さらにネイティブイメージ化のためにはリフレクション、リソース、プロキシなどの動的要素を明確に与える必要があります。そのために使用する@ImportRuntimeHintsによるメッセージ読み込みの方法や@RegisterReflectionForBindng による非公開の型の設定方法に関して説明されました。

 Spring Nativeからの進化としては、Spring Boot 3ではほぼすべてのSpringプロジェクトとGraalVM reachability metadataに基づく幅広いライブラリをサポートするなどによりSpring Nativeが抱えていた互換性の問題の多くが解決され製品レベルの品質となったこと、ユーザからの要望が多かったlogbackがサポートされたことが強調されていました。

Spring NativeとSpring Boot 3の比較
Spring NativeとSpring Boot 3の比較

 また、Spring Boot 3におけるAOTとネイティブサポートの概要、ネイティブコンパイルの流れについて触れたうえで、Spring Boot 3での新しい機能としてネイティブイメージでのテストの実行についてMavenやGradleを使用する際の具体的なコマンドを含めて紹介されました。

 なお、Spring Boot 3をネイティブアプリケーションとして動作させるためのビルド方法は2通りありますが、ネイティブイメージでテストを実行するためには、Native Build ToolsでビルドするとともにGraalVMのnative-image compilerが必要である模様です。

ネイティブイメージの2つのビルド方法
ネイティブイメージの2つのビルド方法

 最後に、ネイティブイメージでもActuatorやトレーシングが動作すること、VMware Tanzuにend-to-endでのネイティブサポートが加わったこと、および、今後ネイティブイメージの更なる軽量化を図っていくことに触れてセッションが締めくくられました。

次のページ
Observability of Your Application

この記事は参考になりましたか?

イベントレポート連載記事一覧

もっと読む

この記事の著者

SpringOne Essentials 参加チーム(SpringOne Essentials サンカチーム)

NTTソフトウェアイノベーションセンタ:岩塚 卓弥、水野 諭孝 NTTデータ:小峰 規行、高橋 寛恒 NTTコムウェア:杉本 真梨、宮嶋 健太

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/17468 2023/03/16 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー