通过java代码设置global-property

时间:2014-02-04 02:53:27

标签: mule mule-studio anypoint-studio

我需要用语法设置全局属性。在功能上它应该完全按照以下语句执行

<global-property name="host-name" value="localhost" doc:name="Global Property"/>

我相信我应该可以使用$ {host-name}访问此属性。在这个特定的情节中,我不想从属性文件加载属性。

1 个答案:

答案 0 :(得分:2)

如果您只想解析像$ {host-name}这样的占位符,可以使用方法resolvePlaceholder的自定义实现扩展Spring PropertyPlaceholderConfigurer类,并将其添加为Spring bean,如下所示:

<spring:beans>
  <spring:bean id="myConfigurer" class="my.test.MyConfigurer"/>
</spring:beans>

然后调用您的自定义resolvePlaceholder来解析任何未解析的属性。

通过从消息(message.getMuleContext())获取上下文或通过实现MuleContextAware bean来设置Mule上下文注册表中的实际设置属性也相当简单,但在这些情况下,该属性将不可用在解决财产占位符时。

您可以像这样设置属性:

context.getRegistry().registerObject("myKey", "myVal")

然后像这样访问它:

context.getRegistry().get("myKey")