javax.inject.Inject bean 在 Spring 引导中无法识别

javax.inject.Inject beans not recognized in Spring boot

我有一个外部依赖项(添加为 pom.xml 中的依赖项),它在我的 spring 启动应用程序中使用 CDI (javax.inject.Inject) 进行依赖项注入。我正在尝试 Autowired 那些 CDI 管理的 bean 但没有成功。

我一直低于错误。

No qualifying bean of type '<Bean name>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

我尝试 ComponentScan 扫描 CDI 托管 bean,但也无济于事。

有人可以帮助 Spring 启动 CDI 管理的 beans

您需要创建一个 Spring 管理的 bean 实例。

在 Java 代码中你可以这样做(注意这适用于任何 class,即使它来自你无法控制的第 3 方库):

@Configuration
public class Config {
    @Bean
    public MyBean myBean() {
        // Return a new instance of your class here
        return new MyBean();
    }
}

或在XML中:

<beans>
    <bean id="myBean" class="abc.def.MyBean"/>
</beans>

现在您可以使用 @Inject 或 Spring 的 @Autowired 注释注入 MyBean