2012-06-13 24 views
1

我有一個導入其他資源的Spring應用程序上下文文件。然而,一些在導入文件的資源具有相似的名稱,例如include1.xml具有類似爲導入的Spring XML資源設置前綴

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

同一個bean ID在include2.xml使用。有沒有辦法爲包含的bean設置一個前綴,或者有辦法限制包含的資源的範圍。例如類似的東西。

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

現在在父文件中我可以引用foo.MyBean和bar.MyBean。如果沒有這樣的系統存在,是否有限制範圍的方法,所以沒有bean id衝突,這裏最好的做法是什麼?

回答

2

不,沒有辦法根據文件來命名空間bean(以後定義的bean會覆蓋之前定義的bean),但是,您可以自由地爲它們指定自己的「名稱」你能說出你的FOO文件中的所有豆類:

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

,並在你的酒吧文件,從而手動它們的命名空間:

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