MULE2-XML配置(请注意:未完待续)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/attack_breast/article/details/83344043

重要提醒

下面所讲解的内容,全部基于MULE3版本来讲解。

配置文件

定义namespace和schemaLocation之外,还可以定义其他的namespace和schemaLocation,最常见的就是:Spring、ApacheCXF。

默认值

可以通过指定的namespace来访问,查看具体属性的默认值是什么。通过Eclipse等编辑工具自带的提示功能,可以很方便的提示出该节点下有哪些属性、这些属性取值有哪些、默认值多少、该属性作用等信息。

结合Spring的namespace

在MULE配置文件中也可以配置Spring-namespace,这样就可以同时配置MULE和SpringBean。另外还有个好处就是:在MULE的节点中可以直接嵌套Spring节点、还可以使用Spring的属性占位符和属性默认值等,例如:

属性占位符

属性占位符的表达式为${属性名},而属性名则配置在properties文件中。

注意:properties文件配置在<spring:beans/>的<context:properity-placeholder/>中,例图中指定了多个properties文件且文件列表之间用逗号作为分隔符。

全局元素

全局元素的作用类似于JAVA类中的全局变量。其定义的位置就是XML根元素下的第一个子元素。其name属性值必须确保在整个项目中唯一。

常见全局元素有:<connector/>、<endpoint/>、<transformer/>、<filter/>、<expression/>、<flow/>、<endpoint/>、<router/>、<logger/>、<component/>等等,这里还有很多就不再一一列举了。

<endpoint/>注意事项

①<endpoint/>能修改消息属性,因为想对消息属性进行二次修改的工作,可以在<endpoint/>完成。

②看如下图:

有<vm:endpoint/>和<http:endpoint/>以及<endpoint/>;如果<endpoint/>带有前缀的情况下,其属性列表取决于前缀,例如:vm和http前缀;如果<endpoint/>没有前缀则取决于其address属性,例如下图:

③<endpoint/>最最最重要的属性就是message exchange pattern (简称为:MEP)即消息转换模式,因为<endpoint/>是工作在<inbound/>和<outbound/>下的,因此不同<endpoint/>的MEP也不同。

每个<inbound/>和<outbound/>的MEP都有其各自的特殊性,也有其默认值,例如:JMS的<endpoint/>仅仅支持单向,HTTP的<endpoint/>则支持双向即请求-响应模式。但是<endpoint/>可以改变其默认值,但取值必须是合法值而不是随便取值。

<transformer/>注意事项

<endpoint/>仅仅是在消息的基础上添加属性,而<transformer/>则是完全改变消息结构,两者修改点与修改力度不一样。

<filter/>注意事项

过滤器起到筛选作用,筛选出符合条件的信息后再对信息处理。

可以使用<and-filter/>、<or-filter/>、<not-filter/>组成逻辑表达式。

<expression/>注意事项

基于表达式的位置,可以分为3类:转换器expression、过滤器expression、路由器expression。

表达式有2部分来组成:evaluator、expression。当把表达式作为其他标签的value属性值时其语法为:#[evaluator:expression]

猜你喜欢

转载自blog.csdn.net/attack_breast/article/details/83344043