Micronaut 2.0.0 已經發布。Micronaut 是一個新一代基於 JVM 的全棧微服務框架,用於構建模組化的、易於測試的微服務應用。
此版本主要變化包括:
核心功能上現在支援 JDK 14,支援用 Groovy 3 編寫的應用程式;改進了啟動效能,新應用程式的啟動時間快了約 20%;改進了 Bean 自我檢查(Bean introspection)功能,以支援靜態建立者方法、介面和列舉,這意味著可以在具有私有實現的介面上定義 bean introspection,例如:
import io.micronaut.core.annotation.Creator;
@io.micronaut.core.annotation.Introspected
interface Example {
String getName();
@Creator
static Example create(String name) {
return () -> name;
}
}
支援 bean 急切初始化;依賴注入實現已得到改進,現在可以向任何 @Factory 方法接收 InjectionPoint 例項,這樣可以在注入 bean 時基於註釋後設資料自定義 bean 的建立方式。
CLI 功能上,Micronaut 的mn
CLI 命令已經用 Micronaut 本身重寫,現在已編譯成 Linux、macOS 和 Windows 上可用的本機映象;使用 curl 命令 curl https://launch.micronaut.io/demo.zip -o demo.zip 可建立 Micronaut 2.0 應用而不需安裝 CLI。
其它更新包括mn feature-diff --features=[FEATURE NAME]
從另一個 Micronaut 專案的根開始掃描,啟用更改差異分析。
$ mn feature-diff --features=azure-function
--- micronaut-cli.yml
+++ micronaut-cli.yml
@@ -3,4 +3,4 @@
testFramework: junit
sourceLanguage: java
buildTool: gradle
-features: [app-name, application, gradle, http-client, java, junit, logback, netty-server, shade, yaml]
+features: [app-name, application, azure-function, azure-function-http, gradle, java, junit, logback, yaml]
--- host.json
+++ host.json
@@ -1,0 +1,7 @@
+{
+ "version": "2.0",
+ "extensionBundle": {
+ "id": "Microsoft.Azure.Functions.ExtensionBundle",
+ "version": "[1.*, 2.0.0)"
+ }
+}
Micronaut 2 對 GraalVM 本機映象的支援已脫離實驗狀態;不再需要為本機映象構建配置靜態資源;不再需要提供其它與 GraalVM 相關的配置來通過 JDBC 或 Hibernate/JPA 連線到資料庫,Micronaut 通過 GraalVM 本機映象自動支援以下驅動程式:Oracle、MariaDB、Postgres、MS SQL、H2 與 MySQL。
同時 Micronaut 基於 Netty 的 HTTP 客戶端和伺服器已更新為支援 HTTP/2;Micronaut 2.0 EventLoopGroup
對伺服器工作執行緒和客戶端請求執行緒使用新的共享預設 Netty,這減少了上下文切換並提高了資源利用率,從 Micronaut 2.0 開始,預設情況下,所有操作都執行EventLoop。
此外還有一系列變化,包括通過擴充套件支援 Kotlin、新增代理請求 API、Serverless 相關改進、快取已移至一個單獨的模組中,並且已移出micronaut-runtime
以及各種模組更新等。詳情檢視:https://docs.micronaut.io/2.0.0/guide/index.html
[admin
]