如何将多个 属性 占位符的属性注入 java
How to inject properties from multiple property placeholders into java
在我的 camel/blueprint 项目中,我在 blueprint.xml:
中定义了一个 property-placeholder
<cm:property-placeholder id="props.placeholder" persistent-id="props.blueprint">
<cm:default-properties>
<cm:property name="app.name" value="app-service" />
</cm:default-properties>
</cm:property-placeholder>
有了这个,我可以在 java 中注入属性(例如骆驼路线):
@Value("${app.name}")
private String name;
现在我需要介绍第二个 属性 占位符:
<cm:property-placeholder id="container_specific.placeholder" persistent-id="container_specific.blueprint"
placeholder-prefix="%%{" placeholder-suffix="}%%">
<cm:default-properties>
<cm:property name="service.port" value="1234"/>
</cm:default-properties>
</cm:property-placeholder>
但是如何从第二个holderuse/inject属性变成java呢? @Value("%%{service.port}%%)
无效。
阅读文档:http://camel.apache.org/using-propertyplaceholder.html
有一个示例显示了如何通过 id 引用蓝图,因此只需配置 Camel 以引用这两个 id
<propertyPlaceholder id="properties"
location="blueprint:props.placeholder,blueprint:container_specific.placeholder">
在我的 camel/blueprint 项目中,我在 blueprint.xml:
中定义了一个property-placeholder
<cm:property-placeholder id="props.placeholder" persistent-id="props.blueprint">
<cm:default-properties>
<cm:property name="app.name" value="app-service" />
</cm:default-properties>
</cm:property-placeholder>
有了这个,我可以在 java 中注入属性(例如骆驼路线):
@Value("${app.name}")
private String name;
现在我需要介绍第二个 属性 占位符:
<cm:property-placeholder id="container_specific.placeholder" persistent-id="container_specific.blueprint"
placeholder-prefix="%%{" placeholder-suffix="}%%">
<cm:default-properties>
<cm:property name="service.port" value="1234"/>
</cm:default-properties>
</cm:property-placeholder>
但是如何从第二个holderuse/inject属性变成java呢? @Value("%%{service.port}%%)
无效。
阅读文档:http://camel.apache.org/using-propertyplaceholder.html
有一个示例显示了如何通过 id 引用蓝图,因此只需配置 Camel 以引用这两个 id
<propertyPlaceholder id="properties"
location="blueprint:props.placeholder,blueprint:container_specific.placeholder">