Mule ESB 3.4上下文属性

时间:2013-07-15 17:11:11

标签: spring properties mule esb

除了必须使用context:place-holder之外,如何在脚本组件中访问由${property-name}加载的属性?我想找到包含这些键值对的对象。像context.getProperty("property-name")这样的东西。

1 个答案:

答案 0 :(得分:5)

Spring属性占位符在配置时解析,不存储在任何地方,因此无法在之后加载。

如果你需要存储它,你总是可以将它们注入一个bean并从注册表中检索它。

基本上你需要做的就是声明你的bean:

<spring:bean class="your.Bean" name="yourBean" >
   <spring:property name="yourBeanAttribute" value="${somePlaceHolder}" />
</spring:bean>

然后你可以从脚本组件/变换器中的注册表中检索它和somePlaceHolder值:

<scripting:transformer doc:name="Script">
 <scripting:script engine="Groovy">
  <scripting:text><![CDATA[
def val = muleContext.getRegistry().lookupObject('yourBean').getYourBeanAttribute()
]]></scripting:text>
  </scripting:script>
 </scripting:transformer>

HTH