Quarkus 是 Kubernetes 原生的 Java 技术栈,它由同类中最佳的 Java 库和标准精制而成,并针对容器和云部署量身定制。Quarkus 的总体目标是将 Java 带入云原生的应用开发,并使它成为 Serverless、云和 Kubernetes 环境的领先平台。同时统一了响应式和命令式编程模型,开发人员可以选择最适合其用例的模型,并更轻松地将其代码与其它组件集成到响应式系统中,例如带有 Vert.x 和 Kafka 的响应式流、响应式数据库 API 等。
Quarkus 3.0 现已发布,该版本基于 Jakarta EE 10,并包含了一些新功能和增强功能的实现。
新的 Dev UI
Quarkus 3.0 现在有一个新的 Dev UI,它更具可扩展性和更易于使用,以及新的改进的外观和用户体验。新的 Dev UI 默认可用;但是由于并非所有扩展都已迁移到新的 Dev UI,用户仍然可以在/q/dev-v1
访问旧的。官方计划在未来的版本中删除旧的 Dev UI。
Jakarta EE 10
Quarkus 2 基于 Jakarta EE 8。Quarkus 3 基于 Jakarta EE 10。最明显的变化是 Jakarta EE 中的javax.*
包已移至jakarta.*
。 此更改需要改变任何依赖javax.*
包的源代码和依赖项及其横向依赖项。
关于quarkus update
如何帮助你迁移的更多信息,可参阅 Updating to Quarkus 3.0部分。
以 Jakarta EE 10 为目标的更改带来了两大改进:
-
更广泛的 Java 生态系统正在转向 Jakarta 依赖项,以便更轻松地共享和兼容实现。
-
CDI 引入了 CDI Lite 和 Build Compatible Extensions (BCE) 的概念,它们支持跨 CDI 实现兼容的标准扩展,并获得 Quarkus 构建时间优化的好处。
值得注意的是,只有 Jakarta EE 中的javax.*
包发生了变化。JDK中的包仍然在javax.*
下。
Eclipse MicroProfile 6
Eclipse MicroProfile 6.0 与 Jakarta EE 10 Core Profile 保持一致,并将 MicroProfile OpenTracing 替换为 MicroProfile Telemetry。
Hibernate ORM 6
Quarkus 3 中最大的变化之一是将 Hibernate ORM 从版本 5 升级到版本 6.2。Hibernate ORM 6 是一个新的主要版本,它带来了许多变化,其中一些是破坏性的。
要从 Quarkus 用户的角度了解有关 Hibernate ORM 6 中更改的更多信息,可参阅 Hibernate ORM 5 到 6 的迁移。
Hibernate ORM 发布公告有很多关于 Hibernate ORM 6 中的更改/改进的信息:
-
Hibernate ORM 6.0
-
Hibernate ORM 6.1
-
Hibernate ORM 6.2
升级到 Hibernate ORM 6 需要一些努力和测试。官方建议可查看一下 Updating to Quarkus 3.0 部分。
Quarkus Hibernate ORM 扩展本身也做了一些改进,例如:
-
支持
StatementInspector
as@PersistenceUnitExtension
managed bean。 -
能够通过使用 CDI(Contexts and Dependency Injection)注入一个
StatelessSession
。
Hibernate Reactive 2
Hibernate Reactive 已经升级到 2.0 版本以兼容 Hibernate ORM 6。
Mutiny 2 和 Java Flow
Quarkus 已升级到 Mutiny 2 ,现在使用 Java Flow API 而不是 Reactive Streams。
更多详情可查看官方公告。