Spring Boot无法识别javax.inject.Inject bean

时间:2019-07-02 15:35:09

标签: spring spring-boot cdi

我有一个外部依赖项(在pom.xml中添加为依赖项),该依赖项在我的Spring Boot应用程序中通过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托管bean

1 个答案:

答案 0 :(得分:1)

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

您可以在Java代码中执行此操作(请注意,该方法适用于任何类,即使它来自您无法控制的第3方库):

)

或使用XML:

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

现在,您可以使用<beans> <bean id="myBean" class="abc.def.MyBean"/> </beans> 或Spring的MyBean注释注入@Inject