我们能否在另一个XML配置文件中覆盖已声明的Spring Bean?

7

我是一个Spring的新手,所以这个问题可能有一个简单的答案,如果我问了一些愚蠢的问题,请您谅解。

我有一个全局的Spring配置文件,我想在许多应用程序中使用它,并且我想以不同的方式覆盖一些bean的属性。您能建议最好的方法吗?

例如,在global.xml中,我有像这样的东西。

<bean id="testInstance" class="testClass">
    <property name="mem1" ref="val1"/>
    <property name="mem2" ref="val2"/>
</bean>

现在,我想从不同的Spring配置文件中引用testInstance,并在覆盖mem1后使用它。在Spring中是否可能实现?我需要使用自定义标签吗?


2
你可以这样做,但是你需要覆盖testInstance。(https://dev59.com/6m025IYBdhLWcg3wtoM_) - Kurt Du Bois
先搜索一下! :) 看看这个:https://dev59.com/6m025IYBdhLWcg3wtoM_ 还有这个:http://beradrian.wordpress.com/2011/05/08/overriding-spring-beans/ - Matjaz Muhic
1个回答

4
你可以在另一个xml配置文件中覆盖已定义的bean。但是,如果你想利用@Configuration实现同样的功能,那么你就会遇到麻烦。Spring不允许这样做。
参见:https://jira.springsource.org/browse/SPR-9567

此问题现已解决。 - Gilad Bar Orion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接