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