Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以覆盖通过组件扫描安装的SpringBeans吗?_Java_Spring_Spring Mvc - Fatal编程技术网

Java 我可以覆盖通过组件扫描安装的SpringBeans吗?

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="

如果我在Spring2.5中使用组件扫描,那么也可以用xml定义一个控制器

我的应用程序上下文中有两个这个bean的实例吗?如果是,将为其相关的RequestMappings调用哪个实例

<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。