1.3. 新功能、增强功能和技术变化


本节概述了红帽构建的 Quarkus 3.2 中引入的新功能、增强功能和技术变化。

1.3.1. 云

在红帽构建的 Quarkus 3.2 中,Qte template 引擎得到了改进,可以缓存很少更改的模板的那些部分,这有助于提高效率。

要使用缓存的小节功能,请使用 quarkus-cache 扩展,其中 CacheSectionHelper 被自动注册和配置。

如需更多信息,请参阅"Qute reference"指南中的 Cached 部分

1.3.1.2. Kubernetes 客户端升级到 6.7.2 版本

红帽构建的 Quarkus 中的 Kubernetes 客户端已 从版本 5.12 升级到 6.7.2。此升级为开发云原生应用程序提供了增强的功能和改进支持。如需更多信息,请参阅 Kubernetes 客户端 - 从 5.x 迁移到 6.x 指南。

1.3.2. Core

1.3.2.1. 支持构建时间分析(用户遥测)

红帽构建的 Quarkus 3.2 引入了构建时分析功能。此功能提供有关应用程序构建期间红帽构建的 Quarkus 的使用信息,而不是在运行时期间使用。

使用分析报告提供了匿名信息,如使用哪些操作系统、JAVA 版本、构建系统和扩展。使用分析可帮助红帽更好地了解红帽构建的 Quarkus 是如何改进的。

要选择,请在 dev 模式下运行红帽构建的 Quarkus。您第一次这样做时,会询问您是否希望选择向 Quarkus 社区贡献匿名构建时间数据。当您运行红帽构建的 Quarkus 应用程序中(例如,在生产环境中)时,不会收集这些数据。

如需更多信息,请参阅 Quarkus 社区中的 Quarkus 使用分析 指南。有关收集哪些数据的更多信息,请参阅 Telemetry 数据收集通知

1.3.2.2. Infinispan 注解缓存支持

红帽构建的 Quarkus Infinispan 扩展现在支持声明性缓存 API,允许在 CDI 管理的 Bean 中基于注解的缓存控制。

1.3.2.3. 管理网络接口集成

管理网络接口是管理和监控应用程序的专用频道,包括为各种管理任务(如健康检查和指标)提供端点。

1.3.2.4. 大多数 quarkus-cache 配置现在是运行时

大多数 quarkus-cache 扩展配置已被运行时,允许您在应用程序启动时定义缓存配置。某些配置属性可以在运行时通过 API 调用来更改。

1.3.2.5. 支持多个 SMTP 邮件器

有些应用程序要求电子邮件通过不同的 SMTP 服务器发送。在红帽构建的 Quarkus 3.2 中,您现在可以使用多个 SMTP 服务器配置多个邮件者并发送电子邮件。

如需更多信息,请参阅" 邮件参考"指南中的多邮件器配置部分

1.3.2.6. 改进开发 UI

红帽构建的 Quarkus 3.2 对开发 UI 进行了重大更改和增强,包括用于简化在开发期间管理和监控应用程序组件的图形界面。这有助于有效地进行日志导航、指标跟踪和端点管理。

1.3.2.7. 调度程序编程 API

使用红帽构建的 Quarkus 3.2 版本,您可以使用新的调度程序程序 API 以编程方式调度作业。

要以编程方式调度作业,您可以注入 io.quarkus.scheduler.Scheduler。您还可以删除以编程方式计划的作业。

如需更多信息,请参阅 Quarkus "Scheduler reference" 指南中的 Programmatic scheduling 部分。

1.3.2.8. 更新工具集成

Red Hat build of Quarkus 更新工具通过自动更新项目依赖项、配置和代码来简化应用程序的升级,以匹配最新的红帽构建的 Quarkus 版本。它简化了迁移过程,确保兼容性并减少保持最新所需的工作。

要使用该工具,请在项目目录中运行 quarkus update 命令,按照交互式提示更新您的应用程序。

重要

Quarkus CLI 仅用于 dev 模式。红帽不支持在生产环境中使用 Quarkus CLI

如需更多信息,请参阅 将应用程序迁移到红帽构建的 Quarkus 版本 3.2 指南。

1.3.3. data

在这个版本中,Hibernate Object-Relational Mapping (ORM)扩展已更改为将 automatic IN 子句参数 padding 作为默认设置。这提高了对包含 IN 子句的查询的缓存效率。

要恢复到之前的功能并取消激活此功能,您可以将 quarkus.hibernate-orm.query.in-clause-parameter-padding 的属性值设置为 false

1.3.3.2. Hibernate ORM 升级到 6.2 版本

红帽构建的 Quarkus 现在包含并支持 Hibernate ORM 版本 6.2,因此显著升级主要持久性层。

与版本 5.6 相比,Hibernate ORM 6.2 带来了很多改进和新功能,但也会出现一些破坏的变化。

如需更多信息,请参阅以下资源:

1.3.3.3. Hibernate Search 升级到 6.2 版本

在红帽构建的 Quarkus 3.2 中,Hibernate Search 已升级到版本 6.2。

Hibernate Search 向红帽构建 Quarkus 应用程序提供索引和全文本搜索功能。版本 6.2 引入了对红帽构建的 Quarkus 应用程序如何处理 geo-point 字段的默认值的改进、新功能以及一些显著变化。

如需了解更多详细信息,请参阅 影响与早期版本兼容性的更改

要了解更多有关 Hibernate Search 中的新内容的信息,请参阅 Hibernate Search 发行注记。

Oracle JDBC 驱动程序已升级至版本 23.2。使用 Oracle DB 的客户应该注意 Oracle JDBC 驱动程序的旧版本不一定与最新的 Oracle DB 版本兼容。

被动数据源现在可以修改 CredentialsProvider 值,从而增强安全性和可配置性。这允许进行实时凭证更新,确保数据访问安全性,同时维护应用程序的可用性并最小化操作中断。

1.3.4. 原生

除了改进的性能外,版本 23 提高了调试信息的生成、对 Java Flight Recorder (JFR)事件的扩展支持,以及 JFR 事件流的实验性支持。它还引入了对 Java 管理扩展(JMX)的实验性支持。

环境变量现在必须通过新的 native-image 选项 - E<env-var-key>[=<env-var-value& gt;] 传递给 Mandrel。

红帽构建的 Quarkus 原生构建器现在默认为以 x86-64-v3、 AMD64 架构上的特定于处理器的应用程序二进制接口(psABI)为目标,并引进了对新的 -march 选项的支持,用于编译旧架构更兼容的原生镜像。

如需更多信息,请参阅 Red Hat build of Quarkus 社区"Native reference"指南中的有关 缺少 CPU 功能的情况。

1.3.5. Observability(可观察性)

1.3.5.1. OpenTelemetry SDK 自动配置

Red Hat build of Quarkus 引入了 OpenTelemetry SDK 自动配置,简化了分布式追踪和可观察性的集成。它根据红帽构建的 Quarkus 扩展自动化 OpenTelemetry SDK 设置,消除了手动配置和优化 trace 和 metric 集合。

1.3.6. 安全性

在 Red Hat build of Quarkus 3.2 中,quarkus-test-security-jwtquarkus-test-security-oidc 测试依赖项已被改进,以支持自定义声明类型。

在这个版本中,您可以提高使用自定义 JWT 令牌声明的应用的测试覆盖。

在 Red Hat build of Quarkus 中包含 OIDC 前端注销 支持补充了支持的 OIDC 后端通道注销,从而可以在分布式环境中的多个服务间注销用户。

1.3.6.3. OpenID Connect 令牌验证自定义

在红帽构建的 Quarkus 3.2 中,提供了定制 OIDC 令牌验证过程的选项。在签名验证前,这个自定义允许预处理旧的令牌标头,通常是由 OIDC 供应商(如 Microsoft Azure)发布的。

1.3.6.4. 安全注解可用作 meta-annotations

您可以在 meta-annotation 中组合 @TestSecurity@JwtSecurity ;例如:

    @Retention(RetentionPolicy.RUNTIME)
    @Target({ ElementType.METHOD })
    @TestSecurity(user = "userOidc", roles = "viewer")
    @OidcSecurity(introspectionRequired = true,
        introspection = {
            @TokenIntrospection(key = "email", value = "user@gmail.com")
        }
    )
    public @interface TestSecurityMetaAnnotation {
    }
Copy to Clipboard Toggle word wrap

如果多个测试方法中需要相同的安全设置,这个组合很有用。

1.3.6.5. 简化了静态租户的 OIDC 多租户解析

在 OIDC 多租户设置中,您可以在 application.properties 文件中设置多个租户配置,您必须指定通过注册 TenantResolver 接口实现来解析租户标识符的方式。

红帽构建的 Quarkus 3.2 引入了基于约定的静态租户解析,其中当前 HTTP 请求 URL 的最后路径段被用作租户标识符。例如,如果请求 URL 以 /keycloak 结尾,则会选择一个租户 ID 为 keycloak 的静态租户配置。

通过使用这个选项,您可以在简单的多租户配置中减少样板代码。

如需更多信息,请参阅 Quarkus "Using OpenID Connect (OIDC)多租户指南中的 配置应用程序 部分。

1.3.6.6. @RolesAllowed 中的小配置属性扩展

红帽构建的 Quarkus @RolesAllowed 注释通过配置属性支持动态角色名称,从而增强访问控制。此注解根据 SecurityIdentity (用户角色)限制访问,提供可在不更改代码的情况下进行适应和可配置的访问控制。

1.3.7. Standards

1.3.7.1. Eclipse MicroProfile 6 集成

Red Hat build of Quarkus 3.2 引入了 Eclipse MicroProfile 6 的集成,它增强了微服务开发与最新的规格,以提高可观察、OpenAPI 和 JWT。

1.3.7.2. Jakarta EE 10 集成

Red Hat build of Quarkus 3.2 引入了 Jakarta EE 10 的集成,它为开发人员提供了对当前 API 和规格的访问。

1.3.8. 工具

1.3.8.1. 支持 Apache Maven 版本 3.9

红帽构建的 Quarkus 3.2 添加了对 Maven 版本 3.9 的支持,以便开发人员可以使用最新的 Maven 功能。Maven 版本 3.8.6 或更高版本仍被支持。

1.3.8.2. 部署工具集成

Quarkus 中的 quarkus deploy 命令有助于将应用程序部署到各种云平台、容器和无服务器环境中。它生成优化的容器镜像,并将应用适应目标平台,确保高效且可靠的部署。

要使用该工具,请运行 quarkus deploy,后跟所需的部署目标和配置选项,允许无缝应用程序部署而无需手动配置。

在红帽构建的 Quarkus 3.2 中,构建和推送容器镜像现在可以更容易。如需更多信息,请参阅使用 quarkus 命令行界面的"Building Red Hat build of Quarkus apps"指南中的 容器镜像 部分。

1.3.8.3.1. 构建容器镜像

例如,您不再需要调整 pom.xml 项目配置来构建 docker 镜像来添加或删除容器镜像扩展。相反,您只需要运行以下命令:

quarkus image build docker
Copy to Clipboard Toggle word wrap
1.3.8.3.2. 推送容器镜像

image push 命令与 image build 命令类似,并提供一些基本选项来将镜像推送到目标容器 registry。

quarkus image push --registry=<image registry> --registry-username=<registry username> --registry-password-stdin
Copy to Clipboard Toggle word wrap
重要

Quarkus CLI 仅用于 dev 模式。红帽不支持在生产环境中使用 Quarkus CLI

有关红帽构建的 Quarkus CLI 镜像命令以及如何使用它们的详细列表,请查看以下资源:

1.3.9. Web

1.3.9.1. 对 SmallRye GraphQL 的联邦支持

Quarkus 的 SmallRye GraphQL 现在支持 Apollo Federation 2 子风险,启用联合 GraphQL 模式创建。这通过整合自独立部署的 GraphQL 服务的数据来实现统一的 GraphQL API,简化了复杂的应用程序开发。

在红帽构建的 Quarkus 的 REST 数据中使用 Panache 扩展过滤,通过向 REST 端点应用预定义的查询来简化数据检索,提高性能和代码可维护性,以便通过 REST API 有效地进行数据库交互。

在列出实体时,您可以通过 @NamedQuery 注释根据实体中定义的命名查询过滤。

指定查询的示例

@Entity
@NamedQuery(name = "Person.containsInName", query = "from Person where name like CONCAT('%', CONCAT(:name, '%'))")
public class Person extends PanacheEntity {
  String name;
}
Copy to Clipboard Toggle word wrap

接下来,在使用生成的资源列出实体时,您可以设置 名为Query 的查询参数。使用所需查询的名称,如调用 http://localhost:8080/people?namedQuery=Person.containsInName&name=ter,这将检索所有具有"ter"名称的人员。

1.3.9.3. gRPC 异常处理

gRPC 异常处理有助于 gRPC 服务中更强大的错误管理,增强应用程序的可靠性和调试基于 gRPC 的应用程序。

此功能允许将错误消息作为跟踪器传递。当出现问题而不是通用"服务器异常"时,gRPC 客户端将从服务器收到特定的错误消息。

1.3.9.4. gRPC 扩展迁移到 Vert.x gRPC

gRPC 扩展到 Vert.x 的实施增强了与 Vert.x 生态系统的协调,为使用 gRPC 通信开发微服务提供了有效的方法。

这个实现允许单个 HTTP 服务器配置,从 Red Hat build of Quarkus 安全配置中删除重复性。

1.3.9.5. 创建 Reactive REST 客户端的编程 API

在以前的版本中,您只能在 application.properties 文件中配置 Reactive REST 客户端来创建 Reactive REST 客户端。如果要创建动态客户端,此方法可能有问题。

使用红帽构建的 Quarkus 3.2,您现在可以使用新的 Quarkus 特定 API QuarkusRestClientBuilder 以编程方式创建 Reactive REST 客户端。

QuarkusRestClientBuilder 接口使用额外的配置选项创建 Reactive REST 客户端。

如需更多信息,请参阅 Quarkus "Using the REST Client" 指南中的 Programmatic client creation with QuarkusRestClientBuilder 部分。

在红帽构建的 Quarkus 3.2 中,RESTEasy Reactive 客户端被改进,以在流传输响应时提供更大的灵活性。

在这个版本中,您可以自定义 HTTP 标头、HTTP 响应和状态代码。

如需更多信息,请参阅 Quarkus "Writing REST services with RESTEasy Reactive" 指南中的 自定义标头和状态 部分。

Red Hat build of Quarkus 3.2 引入了对 REST Client Reactive 的 @Encoded 注解的支持。在这个版本中,@Encoded 注释会影响参数解码,如 PATHQUERY 参数。

如需更多信息,请参阅以下资源:

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat