1

我有一个导入其他几个资源的 Spring 应用程序上下文文件。但是,导入文件中的某些资源具有相似的名称,例如 include1.xml 具有类似的名称

<bean id="MyBean" class="...">
...
</bean>

include2.xml 中使用了相同的 bean id。有没有办法为包含的 bean 设置前缀,或者有没有办法限制包含的资源的范围。例如类似的东西。

<import resource="include1.xml" prefix="foo"/>
<import resource="include2.xml" prefix="bar"/>

现在在父文件中我可以引用 foo.MyBean 和 bar.MyBean。如果不存在这样的系统,有没有办法限制范围,所以没有 bean id 冲突,这里的最佳实践是什么?

4

1 回答 1

2

不,没有办法根据文件命名bean(稍后定义的具有相同名称的bean将覆盖之前定义的bean)但是,您可以自由地给它们自己的“名称” - 所以您可能可以命名所有foo 文件中的 bean:

<bean name="foo.bean1" class=../>
<bean name="foo.bean2" class=../>

并在您的 bar 文件中,从而手动命名它们:

<bean name="bar.bean1" class=../>
<bean name="bar.bean2" class=../>
于 2012-06-13T01:09:13.927 回答