如何从Blueprint XML for JBoss Fuse中的属性文件中读取值?

时间:2017-09-05 11:48:37

标签: java apache-camel jbossfuse

如何从Blueprint XML for 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>

2 个答案:

答案 0 :(得分:1)

实际上,blueprint-extblueprint-cm从中扩展,支持属性文件的外部源,与defualt ConfigAdmin使用的位置无关。

它允许你写一些类似的东西:

```

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

```

此处blueprint-cm xsd中的Se引用:

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

答案 1 :(得分: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/

所以你已经在阅读一个属性文件了。只是有不同的扩展名。

注意
如果您想要阅读分散在文件系统中的文件来配置您的软件包,我强烈建议您不要这样做,您正在寻找麻烦。只有当你知道自己在做什么并且有理由这样做时,才能做