2010-05-20 64 views
4

如果我在Spring 2.5中使用组件扫描,但也可以在xml中定义一个控制器。我可以重写使用组件扫描安装的spring bean吗?

我在应用程序上下文中获得了这个bean的两个实例吗?如果是的话哪个实例将被调用其相关的RequestMappings?

<bean id="myController" class="domain.MyController"> 
     <property name="filters"> 
      <list> 
       <ref local="filter1"/> 
       <ref local="filter2"/> 
      </list> 
     </property>   
    </bean> 

回答

0

好问题,我不确定。我的猜测是,无论哪一个首先被宣布,胜利。因此,如果您的<context:component-scan>首先出现,则自动检测到的组件将获得请求。如果你的<bean>先来,那就赢了。

如果有疑问,测试一下,应该不难发现。

一个更好的解决办法是从扫描仪明确排除的组分,使用的<context:component-scan>嵌套过滤元件。

+0

我测试过它,什么时候被发现的倍数它总是会抛出一个异常.. – 2013-02-11 15:24:31

0

我已经这么做了意外之前,它通常会导致在多个应用程序环境。尽管所有的东西看起来都很好,但是像数据库变化这样的小东西永远都不会被提交,通常我不得不追踪它。

+0

不,它不会产生多重执行绪,它只会创建多个豆。 – skaffman 2010-05-20 14:14:30

1

如果你问春给定接口的豆,你有该接口的两个bean,然后你从Spring容器例外。

从这个规则的一个例外是,如果您的组件标有@Primary或XML bean的主要属性设置为true。

相关问题