Spring JavaConfig中定义的bean的NoSuchBeanDefinitionException
早些时候,我在项目中使用了XML配置,一切正常 我们正逐渐转向java配置,所以现在我正处于一个混合使用java和XML配置的阶段 问题是,在我的XML配置中定义了一个bean:beanASpring JavaConfig中定义的bean的NoSuchBeanDefinitionException,spring,javabeans,autowired,xmlbeans,Spring,Javabeans,Autowired,Xmlbeans,早些时候,我在项目中使用了XML配置,一切正常 我们正逐渐转向java配置,所以现在我正处于一个混合使用java和XML配置的阶段 问题是,在我的XML配置中定义了一个bean:beanA <bean id="beanA" class="BeanA" /> 之前,这个beanB也在XML配置中,并且运行正确 现在,我做了这个改变,但它不再有效: @Configuration class MyConfig { @Bean pub
<bean id="beanA" class="BeanA" />
之前,这个beanB也在XML配置中,并且运行正确
现在,我做了这个改变,但它不再有效:
@Configuration
class MyConfig {
@Bean
public BeanB beanB() {
return new BeanB();
}
}
除了添加@Configuration
和@Bean
注释外,我还缺少其他需要做的事情吗
我得到以下错误:
org.springframework.beans.factory.unsatifiedpendencyException:创建名为“beanB”的bean时出错:通过字段“beanA”表示未满足的依赖关系
嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“com.xxxxxx.yyy.zzzzzzzz.abc.beanA”类型的合格bean可用:
至少需要1个符合autowire候选资格的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
请注意
您还需要在xml配置中添加BeanB的配置。当程序运行时,它从xml配置文件加载所有bean定义。因此,配置文件中似乎缺少BeanB定义。Spring不会从带有
@Configuration
注释的类中加载bean,除非告诉它查找带有此注释的类
要使spring查找这些类,必须在xml配置中添加以下内容:
然后它将递归地查找并初始化包com.xxxxx.yyy.zzzz中的所有bean。好了,事情是这样的,我确实让它在xml文件中处理bean,但我想将它们移出。因此,BeanB定义被故意从XML中删除。
@Configuration
class MyConfig {
@Bean
public BeanB beanB() {
return new BeanB();
}
}