目录
一、MEL语法规则及定义 2
MEL(Mule Expression Language)语法介绍 2
MEL上下文对象(Context Objects) 2
Server 3
Mule 4
App 5
Message 5
MEL运算符 6
数学运算 6
比较运算 6
逻辑运算 7
MEL变量(Variables) 8
数据提取函数(Data Extraction Functions) 8
字典、列表、数组(Map, List, and Array) 9
二、MEL语法实践 9
消息过滤器(Message Filters) 9
消息选择路由(Choice Routers) 9
消息转换器(Expression Transformers) 10
连接器(Connectors) 10
日志组件(Loggers) 10
动态端点(Dynamic Endpoints) 11
表达式组件(ponents) 12
一、MEL语法规则及定义
MEL(Mule Expression Language)语法介绍
Mule表达式格式表现为: #[ ] .
表达式语言类似于脚本语言,它允许你用精简的脚本动态实现取值、赋值、操作消息等。如果你想实现更复杂的逻辑,那么建议采用脚本语言,如果你想快速简单的实现取值复制以及函数调用等操作,采用表达式语言更方便。
目前Mule支持两种表达式语言:
,表达式格式表现如:#[evaluator:expression]
,Mule Expression Language【MEL】,表达式格式表现如:#[expression]
老版本和新版本的不同是,老版本需要指定Evaluator,而新版本就是MEL本身。
语法介绍:
表达式
描述
#[2 + 2]
该表达式取值等于 4.
#[2 + 2 == 4]
该表达式为逻辑表达式,取值为 true.
#[message]
该表达式引用了MEL中四个上下文对象中的message对象,该表达式取值为message对象的值。
四个上下文对象包括: (message, app, mule, and server). 具体对象参数介绍请见下文。
#[]
该表达式链接了message对象的payload属性。
#[['name']]
该表达式链接了message对象的payload属性中name变量中的值。注意,name是由单引号括起来的,这是由于mule的配置文件采用的是双引号,所以这里只能使用单引号。
#[[4]]
同上一表达式一样,只是这里是通过数字索引来引用该值。
#[()]
该表达式链接了message对象的header对象,并调用get方法。
MEL上下文对象(Context Objects)
Context objects 包括消息对象以及它的环境变量。MEL包括四个上下文对象:
Server: 包括硬件、操作系统、用户、网络接口等属性。
Mule: 包括Mule实例的所有属性。
App: 包括当前Mule应用的所有属性。
Message: 包括当前Mule消息的所有属性。
MEL中默认的上下文对象为message。例如:#[]可以写为:#[payload],即省略了message对象。
MEL上下文对象属性地图:
server
mule
app
message
fileSeparator
clusterId
encoding
id
host
home
name
rootId
ip
nodeId
standalone
correlationId
locale
version
workdir
correlationSequence
javaVersion
registry
correlationGroupSize
javaVendor
replyTo
osName
dataType
osArch
payload
osVersion
inboundProperties
systemProperties
inboundAttachments
timeZone
outboundPropert
MEL语法学习笔记v2 来自淘豆网m.daumloan.com转载请标明出处.