2012-10-17 86 views
1

在applicationcontext.xml中,是否可以設置稍後可用於SPEL表達式的值?是否可以在applicationcontext中設置資源屬性值?

例如有沒有辦法做到這一點?:

<setProperty name="foo" value="someval" /> 


<bean id="beanId" name="beanName" class="SomeClass"> 
    <property name="someVal" value="blah_${foo}"/> 
</bean> 

實際的原因,我想這樣做,這是我使用語句來創建它在許多不同的應用環境中使用實體管理器。問題是實體管理器需要一個唯一的名稱,Bitronix使用該名稱來創建一個本地文件,如果多個單元測試同時使用該字段的相同名稱運行,則該文件會中斷。要設置這個唯一的名稱,我目前有一個單獨的屬性文件,爲每個應用程序上下文並將其導入以從中獲取唯一的名稱。

不是這樣做,廢話我寧願只是這樣做:

<setProperty name="uniqueName" value="someUniqueName" /> 
<import resource="classpath*:shared/db/fooDb.xml" /> 

回答

5

爲此,您可以使用Spring-EL和UTIL命名空間:

<util:properties id="myprops"> 
    <prop key="foo">someval</prop> 
</util:properties> 

<bean id="beanId" name="beanName" class="SomeClass"> 
    <property name="someVal" value="blah_#{myprops.foo}"/> 
</bean> 
+0

+1我寧願'properties'文件 –

相關問題