我之前在项目中使用XML配置,并且一切正常。
我们正在逐步转向Java配置,所以现在我正处于混合使用Java和XML配置的阶段。
问题出在这里,我的XML配置中定义了一个bean:beanA。
<bean id="beanA" class="BeanA" />
BeanA类对BeanB具有自动绑定的依赖关系。
class BeanA {
@Autowired
BeanB beanB;
}
以前,此beanB也在XML配置中,并且可以正确运行。
现在,我已经进行了此更改,并且不再起作用:
@Configuration
class MyConfig {
@Bean
public BeanB beanB() {
return new BeanB();
}
}
除了添加@Configuration
和@Bean
注释之外,还有其他需要做的事情吗?
我遇到以下错误:
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为'beanB'的bean时出错:通过字段'beanA'表示的不满足的依赖关系;
嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有可用的com.xxxxxx.yyy.zzzzzzzzzzzzzz.abc.beanA类型的合格Bean:
期望至少有1个可以作为自动装配候选者的bean。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
请注意
-
我仅移动了通过Java配置创建的beanB。
-
BeanA实际上具有更多的依赖关系,因此我无法在此阶段将其移至java config(稍后将进行适当的迁移)。