2013-07-15 66 views
1

如何在腳本組件中訪問由context:place-holder加載的屬性,而不是必須使用${property-name}?我想要找到保存這些鍵值對的對象。像context.getProperty("property-name")Mule ESB 3.4上下文屬性

回答

5

彈性屬性佔位符在配置時解析並且不存儲在任何地方,所以它們不能在之後加載。

如果您需要存儲它,您可以隨時將它們注入到一個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

+0

是否可以顯示bean/registry註冊表的示例? – AmbuSreedharan

+0

我編輯了答案爲您提供示例 – genjosanzo