我需要用语法设置全局属性。在功能上它应该完全按照以下语句执行
<global-property name="host-name" value="localhost" doc:name="Global Property"/>
我相信我应该可以使用$ {host-name}访问此属性。在这个特定的情节中,我不想从属性文件加载属性。
答案 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")