【发布时间】:2019-11-11 14:53:37
【问题描述】:
我之前在我的项目中使用 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.zzzzzzzzzzzz.abc.beanA' 类型的合格 bean 可用:
预计至少有 1 个 bean 有资格作为自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
请注意,
-
我只移动了 beanB 以通过 java config 创建。
-
BeanA 实际上有更多的依赖关系,所以我不能在这个阶段将它移动到 java 配置中(稍后将进行适当的迁移)。
【问题讨论】:
标签: spring javabeans autowired xmlbeans