quarkus 自定义 bean 注释 "creating" 代理,即使是 Singleton 范围

quarkus custom bean annotation "creating" proxies even with Singleton scope

我有一个 java 库,我想在 quarkus 应用程序中使用,这个库有一个我想用于 bean 加载的自定义注释,所以我写了一个 quarkus 扩展并尝试了 BeanDefiningAnnotationBuildItem方法。

从扩展部署模块中提取:

    static DotName OP_RULE_ANNOTATION = DotName.createSimple(OpRule.class.getName());
    static DotName SINGLETON = DotName.createSimple(Singleton.class.getName());

    @BuildStep
    void additionalBeanAnnotations(BuildProducer<BeanDefiningAnnotationBuildItem> beanDefiningAnnotations) {
        beanDefiningAnnotations.produce(new BeanDefiningAnnotationBuildItem(OP_RULE_ANNOTATION, SINGLETON, false));
    }

注解被正确检测到,bean 被加载,但是当我尝试注入它们时,它们被代理包裹,看起来 Singleton 范围被忽略了。

有人对我如何调试它有任何提示吗?

更新: 在向扩展添加测试时,我还添加了一个测试以确保那些 类 不会被代理包装并且它通过了,我没有对应用程序进行任何特殊配置(据我所知)

问题是由 dev-mode 监控引起的,用这个 属性 禁用它可以解决问题:

quarkus.arc.dev-mode.monitoring-enabled

https://quarkus.io/guides/all-config#quarkus-arc_quarkus.arc.dev-mode.monitoring-enabled