【问题标题】:Inject Beans that don't have scope annotation注入没有范围注解的 Bean
【发布时间】:2020-10-19 15:01:52
【问题描述】:

我是 quarkus 的新手,有一个关于 quarkus 依赖注入的问题。

我正在进行一个将应用程序迁移到 quarkus 的项目。旧应用程序使用 spring 并在 JBoss 上运行。我的目标是将其迁移到 quarkus。几个星期以来,我一直面临一个关于依赖注入的问题。旧应用程序使用一个外部 xml 文件来配置这些 bean(比如它们的范围......)。因此,除了每个 bean 上的 @Named 之外,bean 类中没有注释。我目前的问题是我无法修改某些依赖项以添加注释(例如@Requestscoped、@ApplicationScoped ...),以便我可以将它们注入到我的类中,因为它们是外部依赖项。 quarkus 是否有办法在不修改定义这些 bean 的类的情况下向 bean 添加注释?

谢谢。

预期行为: 能够将只有 @Named 注释的 bean 注入到我的代码中。

实际行为: 没有注入 Bean,因为它们没有 @RequestScoped、@Dependent... 注释

quarkus 版本:1.5.1.FINAL

java -version 的输出: openjdk 版本“1.8.0_252” OpenJDK 运行时环境 (AdoptOpenJDK)(build 1.8.0_252-b09) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09,混合模式)

mvn --version 的输出: Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven 主页:C:\MAVEN\apache-maven-3.6.3\bin.. Java 版本:1.8.0_252,供应商:AdoptOpenJDK,运行时:C:\Program Files\AdoptOpenJDK\jdk-8.0.252.09-hotspot\jre 默认语言环境:en_IE,平台编码:Cp1252 操作系统名称:“windows 10”,版本:“10.0”,arch:“amd64”,家族:“windows”

【问题讨论】:

    标签: dependency-injection cdi javabeans quarkus


    【解决方案1】:

    没有配置属性左右。但是,您可以编写 a Quarkus extension,利用 build-time APIs 来转换类的注释,可能基于外部文件配置。

    【讨论】:

    • Martin Kouba 感谢您的回答。我目前正在探索我在 quarkus 文档中看到的这条路线,其中包括编写一个 quarkus 扩展,以便利用构建时 API 来转换注释。但是我目前在本地存储库中发布扩展存在一个小问题。老实说,我不知道如何在本地仓库中发布扩展。那么您有任何链接或可以提供帮助的东西吗?
    • mvn clean install 应该在本地仓库中安装你的扩展。
    • 感谢 Martin Kouba 这对我很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多