首页 > 解决方案 > Spring Boot 应用程序无法注入 CDI bean。

问题描述

我正在尝试在我的 springboot 应用程序中使用 CDI 创建的 bean。Spring Boot 项目可以访问所需的基于 CDI 的 DI 类,但 @Inject 无法将 CDI bean 注入到 Spring Boot 项目中。

注意:我也尝试在我的 spring 上下文文件中添加以下行来解决这个问题:

<bean class="org.cdisource.springintegration.CdiBeanFactoryPostProcessor" />

但我收到错误:

Caused by: java.lang.ClassNotFoundException: org.cdisource.springintegration.CdiBeanFactoryPostProcessor
    at java.net.URLClassLoader.findClass(URLClassLoader.java:607) ~[?:1.8.0-internal]
    at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:846) ~[?:1.8.0-internal]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:825) ~[?:1.8.0-internal]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325) ~[?:1.8.0-internal]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:805) ~[?:1.8.0-internal]
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:274) ~[spring-core-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:437) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1428) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1372) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:666) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:633) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1489) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:420) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:390) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:208) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1276) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1101) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    ... 19 more

并且在 maven 存储库中找不到“org.cdisource.springintegration.CdiBeanFactoryPostProcessor”所需的依赖项。

如果任何机构对此 CDI 和 spring 集成有任何解决方案,请分享这个概念。

标签: springspring-bootspring-batchcdi

解决方案


推荐阅读