我有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'包中 –