在我的骆驼/蓝图项目中,我定义的blueprint.xml一个property-placeholder
:如何以将来自多个属性占位符属性转换成Java
<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>
但是如何使用/注入属性从第二持有人到Java? @Value("%%{service.port}%%)
不起作用。
你尝试@PropertyInject(一个例子“{{service.port}}”)) –
这与第二个占位符有什么关系? – dermoritz
我的意思是用@PropertyInject(“service.port”)替换@Value注释,我用这种方式在我的代码中使用它,并且工作正常。我认为不同的属性占位符的主要用途是当你正在做单元测试,并且你想在你的测试中覆盖它们。然后你引用persisent-id的值。 –