Micronaut財団はこのほど、Micronautフレームワーク4.0.0の一般提供(GA)リリースを発表した。このメジャーリリースは、人気のあるJVMベースのフレームワークに多数のアップデートと改善をもたらし、そのパフォーマンス、モジュール性、他の技術との互換性を強化する。
Micronaut Framework 4.0.0の主なアップデートの一つは、言語ベースラインのアップグレードである。フレームワークは現在、 Apache Groovy 4とと Kotlin 1.8をサポートし、Javaベースラインを17に設定している。これは、開発者がMicronautアプリケーションを構築する際に、これらの言語の最新の機能と改善を活用できることを意味する。
Kotlinを使用している開発者のために、Micronaut Framework 4.0.0はKotlin Symbol Processing(KSP)のサポートを導入している。KSPは、開発者がコンパイラプラグインを作成を可能にする強力なツールであり、より高速なパフォーマンス、Kotlinプログラムの慣用的な処理、明確性と安全性のためのソースコードの読み取り専用処理を提供する。ただし、KSPのサポートは現在のところGradleでしか利用できないことは注目に値する。
Micronautの新バージョンでは、様々な言語で書かれたアプリケーションを実行できるユニバーサル仮想マシンGraalVMのサポートも改善されている。Micronaut Framework 4.0.0は最新のGraalVMリリースをサポートし、GraalVMのランタイム初期化に移行した。この変更により、ジャスト・イン・タイム(JIT)とネイティブ・アプリケーション間の一貫した動作が保証され、開発者は高性能で低フットプリントのアプリケーションを構築しやすくなった。
Micronaut Framework 4.0.0は、MicronautアプリケーションのビルドにGradle 8を利用する。Gradleは、ソフトウェアパッケージやその他の種類のプロジェクトのビルド、テスト、公開、デプロイを自動化する強力なビルドツールである。Gradle 8により、Micronautは、開発者が依存関係管理のための改良されたバージョンカタログ機能などのGradleの最新の機能と改良を利用可能となる。
このリリースにおけるもう一つの重要な追加は、式言語の導入である。この機能により、開発者はアノテーションに式を記述し、アプリケーションの動作を設定・カスタマイズするための強力な方法を提供できる。Micronautの式言語は、デフォルトで安全であるように設計されており、すべての式はコンパイル時に評価され、型チェックされ、リフレクションフリーである。
例えば、開発者はMicronautのセキュリティ・アノテーションを使った式を使うことで、複雑なセキュリティ・ルールを実装できる。次の例で、@Securedアノテーションを使った式を考えてみよう。
@Secured("user.attributes.get('email') == 'sherlock@micronaut.example'") public void someSecureMethod() { // ... }.
この例では、someSecureMethod()
メソッドにアクセスできるのは、現在のユーザーの email 属性が'sherlock@micronaut.example'
の場合だけである。
JavaのProject Loomは、Javaプラットフォームに軽量で効率的なスレッド(「仮想スレッド」として知られる)を追加するための継続的な取り組みである。Micronaut Framework 4.0.0は、Java 19から利用可能な仮想スレッドサポートを検出し、利用可能であれば "BLOCKING "という名前のエクゼキュータに使用するのだ。つまり、Micronautアプリケーションは、Java 19以降のランタイム上で実行される場合、自動的に仮想スレッドを利用でき、より効率的なリソースの使用と潜在的なパフォーマンスの向上につながる。
Micronaut 4.0.0では、HTTPレイヤーも大幅に改善された。HTTPレイヤーは、パフォーマンスを改善し、仮想スレッドのようなリアクティブプログラミングが使用されていない場合、リアクティブスタックフレームの存在を減らすために書き直された。これにより、HTTPリクエストとレスポンスがより効率的に処理され、Micronautアプリケーションの全体的なパフォーマンスが向上する。
さらに、Micronaut 4.0.0では、HTTP/3の実験的サポートと、Nettyインキュベーター・プロジェクトによるio_uringの実験的サポートが含まれている。HTTP/3はHTTPプロトコルの最新バージョンで、パフォーマンスの向上、パケットロスの処理の改善、その他の利点を提供する。 io_uringはLinuxカーネルシステムコールのための新しい、高性能なI/Oインターフェースである。Micronautは、これらの技術を実験的にサポートすることで、開発者がこれらの技術を試し、アプリケーションのパフォーマンスと効率を向上させることを可能にするのだ。
このリリースでは、アノテーションベースのフィルタ、Java HTTPクライアントをベースにしたMicronaut HTTPクライアントの新しい実装、GradleとMavenプラグインの両方に対するOpenAPI Specコード生成のサポートも導入されている。**jakarta
名前空間への移行が完了し、さまざまなjavax
**パッケージが同等のJakarta EEパッケージに置き換えられた。さらに、モジュール性を向上させるために、いくつかの機能が個別のモジュールに分割されたのである。
それにもかかわらず、このリリースはこの人気のあるJVMベースのフレームワークの進化における重要なマイルストーンとなった。数多くのアップデートと改善により、マイクロサービスとサーバーレス・アプリケーションを構築するための強力で柔軟かつ効率的なプラットフォームを開発者に提供する。
詳細については、開発者は GitHubのリリースノートを、アップグレードに興味のある開発者はMicronaut Framework 4へのアップグレードガイドを参照できる。