2017-09-05 41 views
0

如何從Blueprint XML for JBoss Fuse的屬性文件中讀取值?如何從Blueprint XML中的屬性文件讀取JBoss Fuse的值?

目前,我在閱讀如下,但我想從屬性文件中讀取。我可以使用Spring BridgePropertyPlaceholoder來實現它嗎?

<cm:property-placeholder persistent-id="connections" update- 
strategy="reload"> 
<cm:default-properties> 
<cm:property name="xyz" value="http://xx.xx.x.x:x0x0/xxx/yyy"/> 
<cm:property name="pqr" value="http://xx.xx.x.x:x0x0/xxx/yyy"/> 
<cm:property name="lmn" value="mnopqr"/> 
</cm:default-properties> 
</cm:property-placeholder> 

回答

0

您已經在做正確的做法。

persistent-id指示JBoss Fuse的etc/文件夾中文件的名稱。在你的情況下,它是etc/connections.cfg。如果有人編輯文件,您也可以自動重新加載。

請注意,cfg文件屬性文件。自:https://docs.oracle.com/javase/tutorial/essential/environment/properties.html

屬性
屬性被配置值作爲鍵/值對管理。在每一對中,鍵和值都是字符串值。該鍵標識並用於檢索該值,就像變量名稱用於檢索該變量的值一樣。

一些其他規格,如果你想成爲100%的肯定:http://kajabity.com/kajabity-tools/java-properties-classes/the-java-properties-file-format/

那麼您已經閱讀屬性文件。只是一個不同的擴展。

注意
如果你的意思是你想讀散落在文件系統配置文件捆綁,我強烈勸你不這樣做,你正在尋找的麻煩。只有當你知道你在做什麼,並且你有理由去做時,纔可以這樣做

+0

感謝亞歷山德羅對於一個非常明確的解釋!是的,你是對的我有一個名爲connection.cfg的文件,其值爲'xyz''pqr'和'lmn'。但是我在這裏有一個疑問:如果我在connection.cfg中爲xyz,qr和lmn定義了值,那麼的意義是什麼。 –

+0

@ Mr.X如果文件中未定義'xyz',請使用''中提供的值。這是一個默認值。如果connection.cfg文件中存在相同的屬性,則使用文件中的值。 –

+0

非常感謝!:-) –

1

實際上,blueprint-extblueprint-cm從它延伸出來,支持屬性文件的外部源,與所使用的位置無關。

它可以讓你寫的東西,如:

```

<cm:property-placeholder persistent-id="mytest" update-strategy="reload"> 
<cm:location>file:///whatever/my.properties</ext:location> 
    </cm:property-placeholder> 

```

blueprint-cm XSD這裏

硒參考:

http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.3.0.xsd