如何将多个 属性 占位符的属性注入 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">