摘要: JAXB 作为JDK的一部分,能便捷地将Java对象与XML进行相互转换,本教程从实际案例出发来讲解JAXB 2 的那些事儿。完整版目录
XML 是各种应用程序之间进行数据传输的最常用的语言之一,而JAXB提供了一个快速便捷的方式将Java对象与XML进行转换。
JAXB 发展历程
JAXB 1.0 由Java 社区开发与维护。
在2006年,发布JAXB 2.0 版本后,成为了J2SE和J2EE平台的一部分。
2006年,发布的Java SE 6 采用JAXB 2.0。
2011年,发布的J2SE 7 采用JAXB 2.2.3。
2014年,发布的J2SE 8 采用JAXB 2.2.8。
2017年,发布的J2SE 9 采用JAXB 2.3.0,不过该模块被标记为废弃的(deprecated )。
在Java 11中,JAXB 将会从J2SE中去除,只保留J2EE版本中的JAXB。
JAXB 转换
一般地,我们将Java对象转换为XML的过程称之为Marshal
,将XML转换为Java对象的过程称之为UnMarshal
。
为了能告诉转换器使用什么样的规则进行转换,JAXB提供了如下两种方式:
- Java Annotation 注解
- JAXB 的 xjc 工具定义 schema
JAXB相关的重要类与接口
JAXBContext 类
应用的入口,用于管理XML/Java绑定信息。
Marshaller 接口
将Java对象序列化为XML数据。
Unmarshaller 接口
将XML数据反序列化为Java对象。
JAXB 与 jackson
JAXB(Java Architecture for XML Binding)是JSE和JEE平台的一部分,让开发者能够快速完成java类和XML的互相映射。虽然它官方、简洁(不需要引入依赖jar包),确被另外一个产品jackson 的名声盖过了。jackson 对于处理 JSON 有着独特的优势,对XML 的转换也有比较好的支持(虽然是基于JAXB)。
下节预览
在对 JAXB 有一个整体的认知以后,下一节将通过简单的示例,演示 JAXB 的使用流程。