Mule-specific expression language-MEL学习

MEL是一种轻量级、Mule专用的表达式语言,用于访问和获取payload、消息属性和变量。它可以方便地用于信息提取、条件判断、变量获取,以及在Mule消息对象处理中进行过滤和路由。本文介绍了MEL在处理当前消息、条件判断和变量获取方面的用法,并提供了日期和时间函数的示例。

“MEL是一个轻量级,Mule-specific表达式语言,您可以使用它们来访问和获取payload中的值,Mule message属性和变量。访问内部和可用的所有Mule 消息,MEL使您能够迅速、完美的过滤,路由,或者使用在Mule 消息对象处理”—-官方说明翻译(凑合看)


提取信息

可以使用它来处理当前的message,这可能是有用的表达式组件或表达式变压器内的设置:

#[payload]
#[message.inboundProperties.'propertyName']
#[payload.methodCall(parameters)] 
#[xpath3('//root/element1')]  

条件判断

使用当前的message的内容,这可能是非常有用的过滤信息处理:

#[payload.age > 21]
#[message.inboundProperties.'locale'  ==  'en_us']

获取变量

另外的message payload,存储一个表达式的定义;通常情况下,这是很有帮助的。

#[flowVars.output]
#[flowVars['myvars1']]

示例

<logger message="#[payload]" />

<smtp:outbound-endpoint from="#[flowVars.from]" to="#[flowVars.to]"  subject="#[payload.subjectLine]" responseTimeout="10000" doc:name="SMTP"/>
<logger message="The value in my first variable is #[flowVars.myVar1]" level="INFO"/>

下面的表列出Mule可以使用的变量,你可以使用它们。

对象
描述
属性
serverMessage所运行的操作系统

dateTime
env
fileSeparator
host
ip
locale
javaVersion
javaVendor
nanoSeconds
osName
osArch
osVersion
systemProperties
timeZone
tmpDir
userName
userHome
userDir 

mule应用中的Mule实例clusterId
home
nodeId
version 
message消息处理器中的(载体、附件、属性)

id
rootId
correlationId
correlationSequence
correlationGroupSize
replyTo
dataType
payload
inboundProperties
inboundAttachments
outboundProperties
outboundAttachments

application流程中的用户applicationencoding
name
standalone
workDir
registry 

日期和时间函数

返回系统日期和时间,dateTime:

#[server.dateTime]

返回当前系统时间,纳秒:

#[server.nanoTime()]

返回一个dateTime对象与指定日历和服务器的地区:

#[calendar = Calendar.getInstance();
message.payload = new org.mule.el.datetime.DateTime(calendar);]

设置messgae payload为Java Calendar日期和时间:

#[calendar = Calendar.getInstance();
message.payload = new org.mule.el.datetime.DateTime(calendar);]

官方文档地址:
https://developer.mulesoft.com/docs/display/current/Mule+Expression+Language+MEL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值