Quarkus 生成类分析
动态生成的类
| 后缀或命名模式 | 生成位置 | 常见用途 |
|---|---|---|
_Bean | io.quarkus.arc.processor.BeanGenerator#generate(),由 io.quarkus.arc.processor.BeanProcessor#generateResources() 组织 | CDI 容器据此创建 Bean、执行注入并管理作用域和生命周期。应用通常通过 CDI 注入来使用对应 Bean。 |
_ProducerMethod_<方法>_<标识>_Bean | io.quarkus.arc.processor.BeanGenerator#generate() | 将 Producer 方法的返回值作为 CDI Bean 管理,供其他 Bean 按类型和限定符注入。 |
_Synthetic_Bean | io.quarkus.arc.processor.BeanGenerator#generate() | 为扩展或构建步骤注册的 Synthetic Bean 生成 CDI 定义,供容器内部集成和注入使用。 |
_ClientProxy | io.quarkus.arc.processor.ClientProxyGenerator#generate() | 为 CDI Bean 生成代理;调用时定位当前作用域中的实例。应用通常通过注入得到代理并像调用 Bean 一样使用。 |
_ProducerMethod_<方法>_<标识>_ClientProxy、_Synthetic_ClientProxy | io.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 发布事件,由容器调用观察者。 |
_ArcAnnotationLiteral | io.quarkus.arc.processor.AnnotationLiteralGenerator#generate() | 生成运行时注解实例,供限定符匹配、拦截器绑定等 CDI 内部逻辑使用。 |
$$CMImpl | SmallRye 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、观察者等组件,由容器内部加载。 |
_ContextInstances | io.quarkus.arc.processor.ContextInstancesGenerator#generate() | 存取特定作用域中的 Bean 实例,属于 Arc 的上下文管理和优化路径。 |
io.quarkus.runner.recorded.<构建步骤>$<方法><标识> | io.quarkus.deployment.recording.BytecodeRecorderImpl#writeBytecode() 生成任务字节码;#toClassName() 组织类名 | 在应用启动阶段重放构建期记录的初始化、运行时配置或关闭操作。扩展开发者通过 Quarkus Recorder 记录操作,通常不直接使用生成类。 |
框架生成的固定类
| 类名 | 生成位置 | 常见用途 |
|---|---|---|
io.quarkus.runtime.generated.BuildTimeRunTimeFixedConfigSourceBuilder | io.quarkus.deployment.steps.ConfigGenerationBuildStep#buildTimeRunTimeConfig() | 构造构建期与运行期共用、固定在构建时的配置源。 |
io.quarkus.runtime.generated.Config | io.quarkus.deployment.steps.ConfigGenerationBuildStep#generateConfigClass() | 初始化 MicroProfile Config,并持有配置对象。 |
io.quarkus.runtime.generated.RunTimeConfig、io.quarkus.runtime.generated.RunTimeConfigCustomizer | io.quarkus.deployment.steps.ConfigGenerationBuildStep#generateBuilders() | 构建运行期配置及其定制器,供应用启动和运行时读取配置。 |
io.quarkus.runtime.generated.StaticInitConfig、io.quarkus.runtime.generated.StaticInitConfigCustomizer | io.quarkus.deployment.steps.ConfigGenerationBuildStep#generateBuilders() | 构建静态初始化阶段使用的配置及其定制器。 |
io.quarkus.runtime.generated.SharedConfig | io.quarkus.deployment.steps.ConfigGenerationBuildStep#generateBuilders() | 提供静态初始化和运行期配置共用的数据。 |
io.quarkus.runner.ApplicationImpl | io.quarkus.deployment.steps.MainClassBuildStep#build() | 生成 Quarkus 应用装配类,负责启动阶段的应用初始化。 |
io.quarkus.runner.GeneratedMain | io.quarkus.deployment.steps.MainClassBuildStep#mainClassBuildStep() | 生成应用的 main 入口,启动 Quarkus 应用。 |