开发者社区 问答 正文

组件注入莫名异常NoSuchBeanDefinitionException: N?报错

 @Inject
 private QueryChannelService queryChannel;

各service这个组件注入是自动生成的,开始都还一直正常,不知什么原因,突然报启动异常,开始以为是没有定义该bean,后来检查了,有的,而且也只有一份,也是自动生成的!

 <bean id="queryChannel" class="org.openkoala.koala.util.KoalaQueryChannelServiceJpa">
  <property name="entityManager">
   <bean class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
    <property name="persistenceUnitName" value="default" />
   </bean>
  </property>
 </bean>
吧这个注解去掉,该serveice的初始化异常就消失了,但其他为消掉的注入依然报错!


展开
收起
爱吃鱼的程序员 2020-06-22 11:17:23 464 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    请使用InstaceFactory.getInstace( QueryChannelService.class," queryChannel")来获取BEAN,特别要记得指定 queryChannel这样的BEAN名称

    这是由于最新的SPRING导致的,当系统有多个相同类的BEAN时,直接使用@Inject会报这个错

    引用来自“Koala_考拉”的答案

    请使用InstaceFactory.getInstace( QueryChannelService.class," queryChannel")来获取BEAN,特别要记得指定 queryChannel这样的BEAN名称

    这是由于最新的SPRING导致的,当系统有多个相同类的BEAN时,直接使用@Inject会报这个错

    2020-06-22 11:17:41
    赞同 展开评论
问答地址: