Skip to content

Quarkus 生成类分析 ​

动态生成的类 ​

后缀或命名模式生成位置常见用途
_Beanio.quarkus.arc.processor.BeanGenerator#generate(),由 io.quarkus.arc.processor.BeanProcessor#generateResources() 组织CDI 容器据此创建 Bean、执行注入并管理作用域和生命周期。应用通常通过 CDI 注入来使用对应 Bean。
_ProducerMethod_<方法>_<标识>_Beanio.quarkus.arc.processor.BeanGenerator#generate()将 Producer 方法的返回值作为 CDI Bean 管理,供其他 Bean 按类型和限定符注入。
_Synthetic_Beanio.quarkus.arc.processor.BeanGenerator#generate()为扩展或构建步骤注册的 Synthetic Bean 生成 CDI 定义,供容器内部集成和注入使用。
_ClientProxyio.quarkus.arc.processor.ClientProxyGenerator#generate()为 CDI Bean 生成代理;调用时定位当前作用域中的实例。应用通常通过注入得到代理并像调用 Bean 一样使用。
_ProducerMethod_<方法>_<标识>_ClientProxy、_Synthetic_ClientProxyio.quarkus.arc.processor.ClientProxyGenerator#generate()为 Producer 或 Synthetic Bean 提供作用域代理,使用方式与其他 CDI 注入对象相同。
_Subclass、_Subclass$<编号>io.quarkus.arc.processor.SubclassGenerator#generate()生成可接入拦截逻辑的子类,用于方法拦截、装饰或验证等容器功能;业务代码照常调用 Bean 方法。
_Observer_<方法>_<标识>、_Observer_Synthetic_<标识>io.quarkus.arc.processor.ObserverGenerator#generate()提供 CDI 事件观察方法的分发入口。应用通过 CDI 事件 API 发布事件,由容器调用观察者。
_ArcAnnotationLiteralio.quarkus.arc.processor.AnnotationLiteralGenerator#generate()生成运行时注解实例,供限定符匹配、拦截器绑定等 CDI 内部逻辑使用。
$$CMImplSmallRye Config 的 io.smallrye.config.ConfigMappingGenerator#generate() 生成实现;Quarkus 通过 io.quarkus.deployment.steps.ConfigGenerationBuildStep#generateMappings() 接入实现 @ConfigMapping 接口。应用通常注入映射接口读取配置,也可以通过 SmallRye Config 查询映射。
$quarkusrestinvoker$<方法>_<标识>io.quarkus.resteasy.reactive.server.deployment.QuarkusInvokerFactory#create()供 REST 路由分发器调用资源方法;应用只需声明 REST 资源和端点,不直接调用生成的 invoker。
_ComponentsProvider、_ComponentsProvider_addBeans<编号>、_ComponentsProvider_addObservers<编号>io.quarkus.arc.processor.ComponentsProviderGenerator#generate()启动时向 Arc 容器登记 Bean、观察者等组件,由容器内部加载。
_ContextInstancesio.quarkus.arc.processor.ContextInstancesGenerator#generate()存取特定作用域中的 Bean 实例,属于 Arc 的上下文管理和优化路径。
io.quarkus.runner.recorded.<构建步骤>$<方法><标识>io.quarkus.deployment.recording.BytecodeRecorderImpl#writeBytecode() 生成任务字节码;#toClassName() 组织类名在应用启动阶段重放构建期记录的初始化、运行时配置或关闭操作。扩展开发者通过 Quarkus Recorder 记录操作,通常不直接使用生成类。

框架生成的固定类 ​

类名生成位置常见用途
io.quarkus.runtime.generated.BuildTimeRunTimeFixedConfigSourceBuilderio.quarkus.deployment.steps.ConfigGenerationBuildStep#buildTimeRunTimeConfig()构造构建期与运行期共用、固定在构建时的配置源。
io.quarkus.runtime.generated.Configio.quarkus.deployment.steps.ConfigGenerationBuildStep#generateConfigClass()初始化 MicroProfile Config,并持有配置对象。
io.quarkus.runtime.generated.RunTimeConfig、io.quarkus.runtime.generated.RunTimeConfigCustomizerio.quarkus.deployment.steps.ConfigGenerationBuildStep#generateBuilders()构建运行期配置及其定制器,供应用启动和运行时读取配置。
io.quarkus.runtime.generated.StaticInitConfig、io.quarkus.runtime.generated.StaticInitConfigCustomizerio.quarkus.deployment.steps.ConfigGenerationBuildStep#generateBuilders()构建静态初始化阶段使用的配置及其定制器。
io.quarkus.runtime.generated.SharedConfigio.quarkus.deployment.steps.ConfigGenerationBuildStep#generateBuilders()提供静态初始化和运行期配置共用的数据。
io.quarkus.runner.ApplicationImplio.quarkus.deployment.steps.MainClassBuildStep#build()生成 Quarkus 应用装配类,负责启动阶段的应用初始化。
io.quarkus.runner.GeneratedMainio.quarkus.deployment.steps.MainClassBuildStep#mainClassBuildStep()生成应用的 main 入口,启动 Quarkus 应用。