我有2个组件A
和B
。 A
取决于B
。我写的是这样的:Spring中的自动装配和注释配置
public class A {
private B b;
@Autowired
public void setB(B b) {
this.b = b;
}
}
@Component
public class B {}
new XmlBeanFactory(new FileSystemResource("./spring.xml")).getBean(A.class);
配置
<context:annotation-config/>
<context:component-scan
base-package="com">
</context:component-scan>
<bean class="com.A" autowire="byType" />
它工作得很好。现在我想通过注释来配置A
。所以我@Component注释添加到A
@Component
public class A {
private B b;
@Autowired
public void setB(B b) {
this.b = b;
}
}
并已删除配置A
描述。所以它只是
<context:annotation-config/>
<context:component-scan
base-package="com">
</context:component-scan>
但是B不再注入。可能我应该指定自动装配类型或smt那样。那我该如何解决它?
你会得到一个异常,或者'B'就是'null'吗?两个班都坐在同一个包里吗? –
@Benjamin Muschko Just'null'。在同一个包中。我把所有的课程都放在'com'包中 –