带有 Spring DI 注释的 CDI 在来自外部依赖项时是否有效?

Does CDI with Spring DI annotation works when its from an external dependency?

我正在编写需要与 Quarkus 和 Spring DI 兼容的代码。 我同时使用 DI 和 Spring 引导属性扩展,Spring 引导扩展。显然,它工作正常,但是从注释为 bean 的外部依赖项中注入任何其他对象都不会注入到任何地方。 Quarkus 好像没认出来

这是 Spring DI 扩展的某种限制吗? 我已经尝试使用 quarkus.index-dependency 属性 并且还尝试包含结构为 Quarkus Extention 的依赖项,但它没有用。

编辑 1: 正如@Kolossus 所述,添加 beans.xml 解决了 DI 问题,但我遇到了另一个与属性 class:

相关的错误

java.lang.RuntimeException:io.quarkus.builder.BuildException:构建失败:构建因错误而失败

        [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: Found 3 deployment problems: 
[1] Ambiguous dependencies for type com.properties.IntegrationProperties and qualifiers [@Default]
        - java member: com.authorization.AuthenticationService#<init>()
        - declared on CLASS bean [types=[com.authorization.AuthenticationService, java.lang.Object], qualifiers=[@Named(value = "authenticationService"), @Default, @Any], target=com.authorization.AuthenticationService]
        - available beans:
                - CLASS bean [types=[com.properties.IntegrationProperties, java.lang.Object], qualifiers=[@Default, @Any], target=com.properties.IntegrationProperties]
                - PRODUCER METHOD bean [types=[com.properties.IntegrationProperties, java.lang.Object], qualifiers=[@Default, @Any], target=com.properties.IntegrationProperties produceIntegrationProperties(org.eclipse.microprofile.config.Config), declaringBean=io.quarkus.arc.runtime.config.ConfigPropertiesProducer]

属性的所有注入点中的不明确依赖关系 class。

beans.xml 添加到依赖项解决了我的问题。属性 class 的问题在于 class 的注释如下:

@Configuration @ConfigurationProperties(prefix = "some-prefix") public class IntegrationProperties

所以 Quarkus 创建了 2 个相同类型的 bean,一个是因为 @configuration,另一个是因为 @ConfigurationProperties。 我通过添加 @EnableConfigurationProperties(IntegrationProperties.class) 修复了它 在另一种配置中 class.