首页 > 解决方案 > quarkus 中的程序化运行时注入/自动装配

问题描述

我正在寻找一种在 Quarkus 中进行 bean 运行时注入的方法。我意识到这对于 quarkus 可能有点非正统方法,并且是反模式,所以无需指出这一点,我完全清楚:)

我正在寻找的是一种在运行时构造 bean 的方法,并从 Quarkus 上下文中注入任何带注释的属性。

在 Spring Boot 中,我将通过 Spring Boot 正常初始化 bean 来获取应用程序上下文,使用ApplicationContextAware接口注入应用程序上下文。然后,我将通过调用ApplicationContext.getAutowireCapableBeanFactory()将其用作工厂来获取自动装配工厂,并使用工厂上的autowireBean方法在运行时自动装配我的 bean。我想知道在 Quarkus 中是否有类似的可能?

标签: javacdiquarkus

解决方案


这类似于这个问题。 如何以编程方式将 Java CDI 托管 bean 注入(静态)方法中的局部变量

javax.enterprise.inject.spi.CDI.current().getBeanManager().select(C.class).get()

要确保对 bean 类进行管理,请使用io.quarkus.arc.Unremovable注释。


推荐阅读