You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus3中StartupEvent方法注入@ConfigMapping报指定异常

问题解决方案

问题原因

Quarkus 3 中,@ConfigMapping 生成的配置 Bean 在 StartupEvent 观察者方法的参数注入场景下,会因 CDI 注入点上下文未完全建立,触发 IllegalStateException: No current injection point found 异常。

可行方案

方案1:手动通过SmallRye Config API获取配置实例

无需依赖CDI注入,直接在观察者方法中通过SmallRye Config的API手动创建MyConfig实例:

import io.quarkus.runtime.StartupEvent;
import io.smallrye.config.SmallRyeConfig;
import io.smallrye.config.SmallRyeConfigProviderResolver;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.event.Observes;

@ApplicationScoped
public class Bootstrapper {
    void onStartup(@Observes StartupEvent startupEvent) {
        SmallRyeConfig config = SmallRyeConfigProviderResolver.instance()
                .getConfig(SmallRyeConfig.class);
        MyConfig myConfig = config.getConfigMapping(MyConfig.class);
        System.out.println(myConfig);
    }
}

方案2:升级Quarkus版本

Quarkus后续版本(如3.2及以上)修复了@ConfigMapping Bean在事件观察者参数中注入的上下文问题,升级后你原本的代码可以直接正常运行:

void onStartup(@Observes StartupEvent startupEvent, MyConfig myConfig) {
    System.out.println(myConfig);
}

内容的提问来源于stack exchange,提问作者SaulJP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:22:19