JAXB vs XStream
2019独角兽企业重金招聘Python工程师标准>>>
JAXB vs XStream 博客分类: java
JAXB vs XStream
这两东东本质上是有差别的,JAXB称为OX binding工具,XStream应该算序列化工具,但OX binding工具也会marshall和unmarshall,所以包含了序列化这一部分。序列化工具不一定需要提供binding的功能。既然都玩序列化,那就简单地比较一下它们两在序列化方面的强弱吧。
JAXB:Toplink JAXB 10133,应该是JAXB 1.1标准 (取消了schema的validation功能)
XStream:1.3.1
数据长度:
类型 |
长度 |
内容 |
XStraem |
351 |
<com.oocl.frm.ws.sample.Employee> <name>Liufei</name> <age>40</age> <address> <street>Zhaojiabang</street> <country>China</country> <city>Shanghai</city> <doorNum>789</doorNum> <empName>Afka liu</empName> </address> <salary>20000.0</salary> <isActive>false</isActive> <sexy>F</sexy> </com.oocl.frm.ws.sample.Employee> |
Toplink JAXB |
589(已经去掉了white space) |
<?xml version="1.0" encoding="UTF-8"?> <ns0:employee xsi:schemaLocation="http://www.oocl.com/frm/ws/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://www.oocl.com/frm/ws/jaxb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns0:name>Liufei</ns0:name><ns0:age>40</ns0:age><ns0:salary>20000.0</ns0:salary><ns0:sexy>F</ns0:sexy><ns0:isActive>false</ns0:isActive><ns0:address><ns0:street>Zhaojiabang</ns0:street><ns0:country>China</ns0:country><ns0:city>Shanghai</ns0:city><ns0:doorNum>789</ns0:doorNum><ns0:empName>Afka liu</ns0:empName></ns0:address></ns0:employee> |
时间:序列化和反序列化1000000次。
类型 |
序列化(ms) |
反序列化(ms) |
XStraem |
90148 |
135878 |
Toplink JAXB |
34872 |
56557 |
结果对比:数据量XStream占优势,时间性能上Toplink Jaxb占明显优势
总结(只从序列化功能角度看)
JAXB: 优点
- J2EE标准
- 运行时间比XStream少
缺点
- 用起来不方便:需要把手动的把business object转换成schema object,当然也可以直接将schema object作为business object,或者采用反射的方法。
- 有一定的局限性:需要schema或者annotation
- 数据量稍大
XStream优点:
- 用起来方便
- 不需要schema,拿过来就转
- 数据量稍小
缺点:
- 非标准
- 时间性能差
http://www.blogjava.net/ldd600/archive/2009/03/04/257832.html
转载于:https://my.oschina.net/xiaominmin/blog/1599535
JAXB vs XStream相关推荐
- JAXB和XStream比较
这两东东本质上是有差别的,JAXB称为OX binding工具,XStream应该算序列化工具,但OX binding工具也会marshall和unmarshall,所以包含了序列化这一部分.序列化工 ...
- java 中 Object XML 互转,最终选择Xstream
前言 spring boot 2.0.0 RELEASE maven 3.5.0 项目中需要进行 Object 与 XML 的互转.为此尝试了几个互转工具,进行记录. 耗费了一天的时间,将Faster ...
- Drools 5.1.1(一)
http://shikonglaike.iteye.com/blog/1236354 第一章欢迎 我总是和终端业务用户争论不休,理解规则和流程.最新规则和事件处理的区别.对此,在他们的意识中有这样的问 ...
- spring框架三层架构_Spring框架架构
spring框架三层架构 这是Spring Framework Architecture的概述. 了解Spring Framework的各个组成部分如何组织以及如何相互联系. 如果您想了解什么是Spr ...
- jibx进行xml数据绑定的binging.xml配置
1.给一个例子: <binding xmlns:ns1="http://vteba.com/service/xml/jibx" name="bind" p ...
- Spring OXM-Castor入门
这里先介绍Castor基本的用法,详细介绍就请看后半部分. 基于maven构建工具,完成oxm测试至少需要4个文件:applicationContext.xml,mapping.xml,Cusomer ...
- Spring技术内幕:设计理念和整体架构概述
为什么80%的码农都做不了架构师?>>> 程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决. 一方面,他们有深 ...
- java oxm_spring oxm入门(包含demo)
O/X Mapper 是什么? Spring 3.0 的一个新特性是 O/X Mapper.O/X 映射器这个概念并不新鲜,O 代表 Object,X 代表 XML.它的目的是在 Java 对象(几乎 ...
- spring 3.0 OXM
本文转载自http://www.ibm.com/developerworks/cn/xml/x-springXOM/ O/X Mapper 是什么? Spring 3.0 的一个新特性是 O/X Ma ...
最新文章
- VMWARE ESXI 虚拟硬盘的格式:精简置备、厚置备延迟置零、厚置备置零
- 3COM小型办公室有线局域网方案
- java swing form_在java swing中创建表单最简单的方法是什么?
- codeforces280 C. Game on Tree(期望)
- 运营管理整改报告范文_整改报告 反馈问题整改报告范文精选5篇
- 如何理解傅立叶级数、傅立叶变换公式?
- 华为当个pl怎么样_华为员工吐槽:画饼、忽悠、洗脑,有些pl、pm怎么可以那么坏?...
- js request 应用举例
- CentOS7 编译安装LNMP
- alexnet论文_【SOT】Siamese RPN++ 论文和代码解析
- json转换map多层嵌套问题
- python读取rtf文件_在python中将unicode文本输出到RTF文件
- Python三大神器之virtual使用
- html怎么画表格边框,WEB 制作1px边框表格的几种方法
- 计算机进去bios方式,电脑的BIOS在哪?各电脑进入BIOS的方法
- 钉钉调用新版待办任务
- 【yum】常见的yum命令
- Python 输出当前 时分秒 包含毫秒
- files函数提取文件名HTML,提取文件名时解析文件的问题os.listdir()为
- python计算某天距元旦的天数_Python:根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上?...