mule in action翻译22 : 4.1使用转换器
第4章 使用mule转换数据
本章概览:
1、转换器是如何运行的,以及如何使用转换器
2、mule核心类库中的常见转换器
3、xml方面的特殊转换器
4、json转换器
5、jvm脚本中的定制转换器
当今的应用理解xml和json,并且使用可相互操作的数据结构,这样说对吗?如果你回答yes,那说明
你真是生活在“仙境”,并且终有一天你会明白残酷的现实。如果你像大多数开发人员一样回答no,那么你会明白为什么说数据转换是ESB的一个关键特性。
我们离统一数据表示方式的世界还很遥远。统一化数据格式仍需极大的努力。对公共数据模型,需要国际委员会花费数年的时间,来制定其完整而复杂的标准。在大型公司,内部工作组或管理人员也试图建立通用的统一的数据表达方式。与此同时,软件集成开发人员日常工作中面临着种种的数据格式转换挑战。
当你学习完本章,你会清晰的认识到mule是如何移开这个软件集成开发中的数据转换的绊脚石的。
4.1使用转换器
像图4.1展示的那样,mule的转换器行为是很简单的。图标说明,mule转换器会严格的控制它接受和输出的数据类型。类型转换使用配置就能轻松的完成;转换器接受到错误的类型后它并不会报异常,只是会把原样的消息返回。因此,要谨慎的使用配置选项。
转换器可以以不同的方式改变消息:
1、Payload类型转换:消息payload中数据类型从一种转化为另一种,比如,一个java.util.Map转为
javax.jms.MapMessage
2、payload 格式转换:消息payload中数据格式从一种转换为另一种。例如从XML document 转为普通文本
形式--以用来记录日志。也可能进行同种类型的转换,比如从不规范的xml转换为规范的xml格式。
3、属性转换:修改消息的属性,添加、删除或修改已存在的属性。例如,消息在发送到jms目的地前,需要
设置某个特殊的属性。
图4.1 mule转换器的默认行为
转换器经常是成对出现,第二个转换器可以撤销第一个转换器的更改。例如压缩和解压缩,这是payload格式转换器,这是由两个不同的转化器来处理。一个转化器能够对另一个转换器起到反向作用,这样的称之为“往返”转换器。一个转化器产生的消息,可以被它对应的“返程”转换器还原为原来的消息。
mule有多种多样的转换器,你在工程中使用的mule可能包含的转换器:
1、mule的核心包含大量通用转换器,在4.3节讲详细的介绍一部分
2、模块也可能包含转换器,在4.4 和4.5节将分别看些和xml模块和json模块相关的转换器。
3、Transports和云连接器也可能提供转换器。
你了解了mule转换器的一些基本情况,为了在你的项目中有效的使用 转换器,现在你需要学习转换器基础
和转换器的配置。
转换和mule的企业版:mule的企业版有个简单但强大的数据映射和转换系统:DataMapper.它提供了一个图形界面来定义消息和payload转换,当前支持 XML, JSON, CSV, POJO, Excel,和fixed-width 文件。它提供一个简单的方式来实现编程化的mule转换器和复杂的 XSLT转换。