JAXB 深入显出 - JAXB 教程 注解

摘要: JAXB 作为JDK的一部分,能便捷地将Java对象与XML进行相互转换,本教程从实际案例出发来讲解JAXB 2 的那些事儿。完整版目录

@XmlRootElement

类级别的注解。将类映射为xml全局元素,也就是根元素。如果要使用 JAXB ,则该注解必不可少。

@XmlRootElement
public class Student {
    private String name;
    ...
}

生成的XML如下:

<student>
    <name>Tom</name>
    ...
</student>
参数 name

name属性用于指定生成元素的名字,若不指定,默认使用类名小写作为元素名。

@XmlRootElement(name = "MyStudent")
public class Student {
    private String name;
    ...
}

生成的XML如下:

<MyStudent>
    <name>Tom</name>
    ...
</MyStudent>
参数 namespace

namespace属性用于指定生成的元素所属的命名空间。

@XmlType

参数 name

定义XML Schema中type的名称

参数 namespace

指定Schema中的命名空间

参数 propOrder

指定映射XML时的节点顺序

参数 factoryClass

指定UnMarshal时生成映射类实例所需的工厂类,默认为这个类本身

参数 factoryMethod

指定工厂类的工厂方法

@XmlAccessorType

类级别的注解。定义这个类中的何种类型需要映射到XML。

参数 value

参数 value 可以接受4个指定值:

  • XmlAccessType.FIELD:映射这个类中的所有字段到XML
  • XmlAccessType.PROPERTY:映射这个类中的属性(get/set方法)到XML
  • XmlAccessType.PUBLIC_MEMBER:将这个类中的所有public的field或property同时映射到XML(默认)
  • XmlAccessType.NONE:不映射
@XmlAccessorOrder

@XmlElement

字段,方法,参数级别的注解。该注解可以将被注解的(非静态)字段,或者被注解的get/set方法对应的字段映射为本地元素,也就是子元素。

参数 name

用于指定映射时的节点名称,指定生成元素的名字,若不指定,默认使用方法名小写作为元素名。

参数 namespace

指定映射时的节点命名空间

参数 required

字段是否必须,默认为false

参数 nillable

是否处理空数据,默认为false

参数 type

定义该字段或属性的关联类型

@XmlAttribute

参数 name

用于指定映射时的节点属性名称,若不指定,默认使用方法名小写作为元素名。

参数 namespace

指定映射时的节点属性命名空间

参数 required

该属性是否必须,默认为false

@XmlTransient

定义某一字段或属性不需要被映射。

@XmlElementWrapper

数组元素或集合元素定义一个父节点。

@XmlJavaTypeAdapter

自定义某一字段或属性映射到XML的适配器。

常见忽视点

一般不要把成员变量声明为public。可能会抛出异常com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException

List元素需要使用@XmlElementWrapper,负责外围解析可能不正常。

jaxb2-maven-plugin是一个用于在Maven构建过程中生成Java类文件的插件。它基于Java Architecture for XML Binding(JAXB)技术,可以将XML文档转换为Java对象。 通过配置pom.xml文件,可以在Maven构建过程中使用jaxb2-maven-plugin来执行以下操作: 1. 生成Java类文件:插件会根据预定义的XSD(XML Schema Definition)文件,使用JAXB技术生成与XML结构相对应的Java类文件。这些生成的类文件可以用来在Java应用程序中读取和处理XML文档。 2. 编译生成的Java类文件:生成的Java类文件需要被编译,以便在项目中使用。插件会自动将这些生成的类文件编译成可执行的Java字节码文件。 3. 打包生成的类文件:插件还可以将生成的Java类文件打包到项目的Jar文件或War文件中,方便在其他项目或部署环境中使用。 使用jaxb2-maven-plugin有以下好处: 1. 减少手动编写Java类的工作量:通过使用插件自动生成Java类文件,开发人员可以节省大量的手动编写代码的时间。 2. 提高开发效率:插件可以与Maven构建过程集成,自动执行生成Java类、编译和打包的任务,从而提高了开发效率。 3. 保持Java类与XML文档的一致性:生成的Java类文件与XML文档的结构一致,可以保证在读取和处理XML时的正确性和准确性。 4. 支持自定义配置:插件允许开发人员根据项目的需求进行自定义配置,例如指定XSD文件的位置、生成的类文件的输出目录等。 总而言之,jaxb2-maven-plugin是一个方便的插件,可以自动化生成、编译和打包与XML文档对应的Java类文件,提高开发效率并保持代码与XML文档的一致性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cj96248

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值