我有一個關於騾子的上下文屬性佔位符的一個問題,我有兩個文件設置是這樣的:騾子ESB:上下文屬性佔位符
<context:property-placeholder location="classpath:mule-app-1.properties, file:///etc/mule/conf/mule-app-2.properties" />
首先,這是一個有效的配置,其次該文件將優先於其他? app1或app2文件?
-S
我有一個關於騾子的上下文屬性佔位符的一個問題,我有兩個文件設置是這樣的:騾子ESB:上下文屬性佔位符
<context:property-placeholder location="classpath:mule-app-1.properties, file:///etc/mule/conf/mule-app-2.properties" />
首先,這是一個有效的配置,其次該文件將優先於其他? app1或app2文件?
-S
每個將依次加載,覆蓋第一個屬性的重複屬性。所以在你的情況下,在mule-app-2.properties中定義的屬性將優先。
接近this article的末尾我描述了使用此方法來提供環境特定的配置屬性。
是的,您可以通過Mule上下文屬性佔位符加載多個文件。正確的方式做它是將性質src/main/resources
文件,此文件夾的類路徑,然後指定是這樣的:
<context:property-placeholder location="mule-app-1.properties, mule-app-2.properties" />
我不知道爲什麼你想在他們
定義重複屬性編輯:
要指定加載多個文件的順序,使用order
屬性:
<context:property-placeholder location="mule-app-1.properties" order="1"/>
<context:property-placeholder location="mule-app-2.properties" order="2"/>
我也遇到過相同的情況。下面是我的實踐經驗成果:
如果兩個文件存在,無論是內部的項目或服務器,兩者將在項目/應用程序啓動時加載。如果文件不可用,它將拋出異常(java.io.FileNotFoundException:系統找不到指定的文件)運行應用程序時。
使用多個屬性文件並瞭解優先級是非常有趣的。在這種情況下,兩個屬性文件都將被加載,因此在這兩個文件中定義的屬性將在運行時加載。但是,如果在兩個文件中定義了相同的屬性,則mule總是優先考慮最後聲明的文件,並且附加屬性如訂單尚未定義。
對於實施例,如果有一個屬性「db.dbname = test_university」內部
「mule-app-1.properties」和「db.dbname =大學」內部「mule-聲明app-2.properties「 then $ {db。DBNAME}配置XML中會加載「大學」
你的配置應該是如下:
<context:property-placeholder location="mule-app.properties, file:C://Users//schiraboina//Desktop//123.txt"/>
在您嘗試通過使用讀取值以上的情況下'$ {key_name}',優先順序爲 1. mule-app.properties 2.從外部位置讀取文件
有關此問題的更多信息。數據將被讀取,給予CLASSPATH中數據的首選,然後讀取文件中的數據!
Spring將依次加載來自每個資源的屬性,當它多次找到它們時覆蓋屬性。這使您可以爲屬性提供默認值,並在每個環境中對其進行自定義。
對於如:
<context:property-placeholder
location="classpath:myapp-config.properties,classpath:myapp-config-${MULE_ENV}.properties,file:/opt/mule/conf/${MULE_ENV}/myapp-config.properties"
ignore-resource-not-found="true"
ignore-unresolvable="true" />
這非常類似於剛纔你所提到以上,並回答你的問題:
請參考以下鏈接瞭解詳情: http://confluex.com/blog/integration-software-is-software/
By Tim Hennekey 你可以用這個例子MULE同春:
<spring:bean id="property-placeholderInstance" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" name="Bean">
<spring:property name="locations">
<spring:list>
<spring:value>file:${mule.home}/conf/PropertyFile1.properties</spring:value>
<spring:value>file:${mule.home}/conf/PropertyFile2.properties</spring:value>
</spring:list>
</spring:property>
</spring:bean>
這樣的文件會被首先加載,應用-1或應用-2?你知道哪個優先嗎? – insaneyogi
查看我的回答編輯 –
所以我的問題確實是如果沒有指定訂單屬性,&我有兩個屬性文件設置將導致錯誤,或者是否有一個默認排序?如果是的話,默認排序是什麼。 – insaneyogi