Java 我可以覆盖通过组件扫描安装的SpringBeans吗?
如果我在Spring2.5中使用组件扫描,那么也可以用xml定义一个控制器 我的应用程序上下文中有两个这个bean的实例吗?如果是,将为其相关的RequestMappings调用哪个实例Java 我可以覆盖通过组件扫描安装的SpringBeans吗?,java,spring,spring-mvc,Java,Spring,Spring Mvc,如果我在Spring2.5中使用组件扫描,那么也可以用xml定义一个控制器 我的应用程序上下文中有两个这个bean的实例吗?如果是,将为其相关的RequestMappings调用哪个实例 <bean id="myController" class="domain.MyController"> <property name="filters"> <list> <ref local="
<bean id="myController" class="domain.MyController">
<property name="filters">
<list>
<ref local="filter1"/>
<ref local="filter2"/>
</list>
</property>
</bean>
问得好,我不确定。我的猜测是,谁先被宣布,谁就赢。因此,如果您的
先到,自动检测组件将获得请求。如果你的
先到,那就赢了
如果有疑问,测试一下,应该不难发现
更好的解决方案是显式地从扫描器中排除组件,使用嵌套的过滤器元素
我以前意外地这样做过,它通常会导致多个应用程序上下文。虽然一切看起来都很正常,但像数据库更改这样的小事情从未提交通常是我必须跟踪的方式。如果您向Spring请求给定接口的bean,并且您有两个该接口的bean,那么Spring容器会出现异常
此规则的一个例外是,如果组件标记为
@Primary
,或者XML bean的Primary属性设置为true。否,它不会创建多个上下文,它只会创建多个bean。