【发布时间】:2019-04-16 07:10:46
【问题描述】:
我有一个带有 Spring 的 Java 项目。我想问如果我声明 bean(在元素 <beans> 中)并且组件扫描到我的 applicationContext.xml(如代码所示)会发生什么。
我还在每个班级中注释了@Component("someName")。
我已经尝试删除 bean 的声明,并且在我的 xml 中只进行了组件扫描——效果很好。当我删除组件扫描并且在我的 xml 中只声明 bean 时 - 它导致出现类错误并且某些类没有调用其他类。
<context:component-scan base-package="vs.project" />
<beans>
<bean name="create" class="vs.project.command.create"/>
<bean name="update" class="vs.project.command.update"/>
<bean name="delete" class="vs.project.command.delete"/>
</beans>
我认为它在这两种情况下都应该运行良好,但事实并非如此。所以我在这里问它是如何工作的,以及如果我在 applicationContext.xml 中同时声明组件扫描和 bean,它是如何工作的。 bean 实例会创建两次吗?那为什么它不能在没有组件扫描的情况下工作。
【问题讨论】: