调用springbean的mule-dataweave
我定义了一个Springbean来处理我的应用程序的资源包,如下所示:调用springbean的mule-dataweave,mule,resourcebundle,anypoint-studio,dataweave,Mule,Resourcebundle,Anypoint Studio,Dataweave,我定义了一个Springbean来处理我的应用程序的资源包,如下所示: <spring:bean id="renewMobileEngagementApiMessages" class="org.springframework.context.support.ResourceBundleMessageSource"> <spring:property name="basename" value="messages/renew-mobile-engagement-api-
<spring:bean id="renewMobileEngagementApiMessages" class="org.springframework.context.support.ResourceBundleMessageSource">
<spring:property name="basename" value="messages/renew-mobile-engagement-api-messages"></spring:property>
<spring:property name="defaultEncoding" value="UTF-8"></spring:property>
<spring:property name="fallbackToSystemLocale" value="false"></spring:property>
</spring:bean>
它按预期正确返回我的属性,在此之前没有问题
问题是,现在我需要在dw:transform消息中访问我的属性,但我不知道怎么做。我尝试使用全局函数,但不知道如何访问我的“RenewMobileEngagementAdminessages”对象引用,然后调用“getMessage”方法
任何帮助都会很好。提前谢谢 只需将消息放在flowVar或有效负载中,放在带有MEL的dataweave组件之前,然后访问dataweave中的有效负载/flowVar即可 下面是一个示例,在访问我的数据编织之前,我将SpringBean加载到有效负载中:
<mule>
<spring:beans>
<spring:bean id="foo" name="foo" class="java.lang.String">
<spring:constructor-arg value="this is foo." />
</spring:bean>
</spring:beans>
<flow name="test-flow">
<set-payload value="#[app.registry.foo]" doc:name="Set Payload"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload>
<![CDATA[%dw 1.0
%output application/xml
---
{
foo: payload
}]]>
</dw:set-payload>
</dw:transform-message>
</flow>
</mule>
只需使用MEL将消息放在flowVar或有效负载中的dataweave组件之前,然后访问dataweave中的有效负载/flowVar即可 下面是一个示例,在访问我的数据编织之前,我将SpringBean加载到有效负载中:
<mule>
<spring:beans>
<spring:bean id="foo" name="foo" class="java.lang.String">
<spring:constructor-arg value="this is foo." />
</spring:bean>
</spring:beans>
<flow name="test-flow">
<set-payload value="#[app.registry.foo]" doc:name="Set Payload"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload>
<![CDATA[%dw 1.0
%output application/xml
---
{
foo: payload
}]]>
</dw:set-payload>
</dw:transform-message>
</flow>
</mule>
您可以将属性存储在dataweave组件之前的流变量中,并使用flowVars在dataweave
中调用此flowVars
。variableName
您可以将属性存储在dataweave组件之前的流变量中,并使用dataweave
中调用此flowVars
flowVars.variableName
使用运算符“p()”可以轻松访问任何系统或Spring属性
例如:
%dw 1.0
%output application/json
---
{
mulehome: p('mule.home')
}
使用运算符“p()”可以轻松访问任何系统或Spring属性 例如:
%dw 1.0
%output application/json
---
{
mulehome: p('mule.home')
}
在DataWeave处理转换时,您可以引用服务器中存在的任何属性(系统或Spring),为此,请使用p('prop_name')函数。在DataWeave处理转换时,您可以引用服务器中存在的任何属性(系统或Spring),以便使用p('prop_name')进行引用函数。谢谢,但这正是我想要避免的解决方案。我需要在多个地方做很多次,每次将我的翻译放入vars是不实际的。谢谢,但这正是我想要避免的解决方案。我需要在多个地方执行此操作很多次,每次将我的翻译放入VAR是不实际的。为什么不能通过属性占位符定义此操作,然后使用dataweave外部的${..}或dataweave内部的
p('propName')
访问属性?因为我需要国际化。我有每种语言的属性文件,我使用spring资源包访问它们。为什么不能通过属性占位符定义它们,然后在dataweave外部使用${..}或在dataweave内部使用p('propName')
访问属性?因为我需要国际化。每种语言都有一个属性文件,我使用spring资源包访问它们。