如果我在Spring 2.5中使用组件扫描,那么还要在xml中定义一个控制器。
我在应用程序上下文中获取此bean的两个实例吗?如果是,那么将为其相关的RequestMappings调用哪个实例?
<bean id="myController" class="domain.MyController">
<property name="filters">
<list>
<ref local="filter1"/>
<ref local="filter2"/>
</list>
</property>
</bean>
答案 0 :(得分:1)
如果您要求Spring提供给定接口的bean,并且您有两个该接口的bean,那么您将从Spring容器中获得异常。
此规则的一个例外是,如果您的组件标有@Primary
,或者XML bean的主属性设置为true。
答案 1 :(得分:0)
好问题,我不确定。我的猜测是,无论哪个首先被宣布,都会获胜。因此,如果您的<context:component-scan>
首先出现,则自动检测到的组件将获得请求。如果您的<bean>
排在第一位,那就赢了。
如果有疑问,请测试一下,不难发现。
更好的解决方案是使用<context:component-scan>
的嵌套过滤器元素从扫描程序中明确排除组件。
答案 2 :(得分:0)
之前我意外地完成了这项操作,通常会导致多个应用程序上下文。虽然看起来像它的一切都运行良好,但数据库更改从未被提交过的通常是我必须如何跟踪它。