【发布时间】:2013-07-13 15:35:45
【问题描述】:
除了必须使用${property-name} 之外,如何在脚本组件中访问context:place-holder 加载的属性?我想找到包含这些键值对的对象。像context.getProperty("property-name") 这样的东西。
【问题讨论】:
标签: spring properties mule esb
除了必须使用${property-name} 之外,如何在脚本组件中访问context:place-holder 加载的属性?我想找到包含这些键值对的对象。像context.getProperty("property-name") 这样的东西。
【问题讨论】:
标签: spring properties mule esb
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
【讨论】: