弃用遗留配置类
在 Quarkus 3.19 中将整个 Quarkus 代码库和 Quarkiverse 扩展迁移到 @ConfigMapping 接口后,我们宣布弃用遗留配置类。
一些历史
2022年,我们在Quarkus中引入了基于`@ConfigMapping`注解接口的新的扩展配置基础设施。它们取代了Quarkus扩展中使用的旧版配置类,这些类存在一些问题且特定于扩展(不能在应用程序中使用)。
新的`@ConfigMapping`基础设施将扩展和应用程序配置统一在同一基础设施上。
在今年2月下旬发布的Quarkus 3.19k中,我们将所有核心扩展迁移到了这个新基础设施(除了一些为兼容性目的保留的类),并弃用了旧版配置类的支持,同时删除了几乎所有现有的配置类:我们保留了少数几个以备兼容。
扩展注解处理器也进行了修改,要求使用特定的选项` -AlegacyConfigRoot=true`。
我们的计划一直是淘汰旧版配置类,以便能够移除与之相关的所有机制,并提供一个统一的配置机制。
当前状态
Quarkus生态系统的当前状态如下:
-
所有核心扩展都使用了新的基于`@ConfigMapping`的基础设施。
-
所有Quarkiverse扩展都已更新为使用新的基于`@ConfigMapping`的基础设施(`quarkus-logging-json`除外,但我们有一个已准备好的拉取请求)。
-
一些参与Ecosystem CI的其他扩展也已更新,例如Blaze-Persistence。
我们知道你们中的一些人也开发自定义扩展,因此强烈建议尽快将您的自定义扩展迁移到`@ConfigMapping`,如果尚未完成的话。
您可以在我们的文档中找到更多关于此的信息,并在Quarkus Core仓库或Quarkiverse扩展中找到大量示例。
在迁移过程中如有任何疑问,请在GitHub Discussions中提问,我们将乐意提供帮助。
3.26版本更新
在3.26版本中,我们将移除所有对旧版配置类的支持,这意味着它们将不再工作。如果您的应用程序的某个扩展使用了任何旧版配置类,您的应用程序将无法构建。
请注意,自3.19.4版本以来,如果您应用程序中的任何扩展使用了旧版配置类,您将收到警告。
我们还将删除之前保留的所有兼容性类。
-
GlobalDevServicesConfig
:请改用DevServicesConfig
。 -
HttpConfiguration
:请改用VertxHttpConfig
。 -
HttpBuildTimeConfig
:请改用VertxHttpBuildTimeConfig
。
反馈和问题
如果您对本次更改有任何反馈或疑问,请使用GitHub Discussions或quarkus-dev Google群组。
加入我们
我们非常重视您的反馈,所以请报告错误,提出改进建议…… 让我们一起构建伟大的东西!
如果您是 Quarkus 用户或只是好奇,请不要害羞,加入我们热情的社区
-
在 GitHub 上提供反馈;
-
编写一些代码并 推送 PR;
-
在 Stack Overflow 上提问。