一.Jaxb处理java对象和xml之间转换常用的annotation有:

@XmlType

@XmlElement

@XmlRootElement

@XmlAttribute

@XmlAccessorType

@XmlAccessorOrder

@XmlTransient

@XmlJavaTypeAdapter

二.常用annotation使用说明

@XmlType

@XmlType用在class类的注解,常与@XmlRootElement,@XmlAccessorType一起使用。它有三个属性:name、propOrder、namespace,经常使用的只有前两个属性。如:

@XmlType(name = "basicStruct", propOrder = {

"intValue",

"stringArray",

"stringValue"

)

在使用@XmlType的propOrder 属性时,必须列出JavaBean对象中的所有属性,否则会报错。

2.@XmlElement

@XmlElement将Java对象的属性映射为xml的节点,在使用@XmlElement时,可通过name属性改变java对象属性在xml中显示的名称。如:

@XmlElement(name="Address")

private String yourAddress;

3.@XmlRootElement

@XmlRootElement用于类级别的注解,对应xml的跟元素,常与 @XmlType 和 @XmlAccessorType一起使用。如:

@XmlType

@XmlAccessorType(XmlAccessType.FIELD)

@XmlRootElement

public class Address {}

4.@XmlAttribute

@XmlAttribute用于把java对象的属性映射为xml的属性,并可通过name属性为生成的xml属性指定别名。如:

@XmlAttribute(name="Country")

private String state;

5.@XmlAccessorType

@XmlAccessorType用于指定由java对象生成xml文件时对java对象属性的访问方式。常与@XmlRootElement、@XmlType一起使用。它的属性值是XmlAccessType的4个枚举值,分   别为:

XmlAccessType.FIELD:java对象中的所有成员变量

XmlAccessType.PROPERTY:java对象中所有通过getter/setter方式访问的成员变量

XmlAccessType.PUBLIC_MEMBER:java对象中所有的public访问权限的成员变量和通过getter/setter方式访问的成员变量

XmlAccessType.NONE:java对象的所有属性都不映射为xml的元素

注意:@XmlAccessorType的默认访问级别是XmlAccessType.PUBLIC_MEMBER,因此,如果java对象中的private成员变量设置了public权限的getter/setter方法,就不要在   private变量上使用@XmlElement和@XmlAttribute注解,否则在由java对象生成xml时会报同一个属性在java类里存在两次的错误。同理,如果@XmlAccessorType的访问权限   为XmlAccessType.NONE,如果在java的成员变量上使用了@XmlElement或@XmlAttribute注解,这些成员变量依然可以映射到xml文件。

6.@XmlAccessorOrder

@XmlAccessorOrder用于对java对象生成的xml元素进行排序。它有两个属性值:

AccessorOrder.ALPHABETICAL:对生成的xml元素按字母书序排序

XmlAccessOrder.UNDEFINED:不排序

7.@XmlTransient

@XmlTransient用于标示在由java对象映射xml时,忽略此属性。即,在生成的xml文件中不出现此元素。

8.@XmlJavaTypeAdapter

@XmlJavaTypeAdapter常用在转换比较复杂的对象时,如map类型或者格式化日期等。使用此注解时,需要自己写一个adapter类继承XmlAdapter抽象类,并实现里面的方法。

@XmlJavaTypeAdapter(value=xxx.class),value为自己定义的adapter类

XmlAdapter如下:

public abstract class XmlAdapter {

// Do-nothing constructor for the derived classes.

protected XmlAdapter() {}

// Convert a value type to a bound type.

public abstract BoundType unmarshal(ValueType v);

// Convert a bound type to a value type.

public abstract ValueType marshal(BoundType v);

}

三.示例

1.Shop.java

2.Order.java

3.Customer.java

4.Address.java

5.DateAdapter.java

6.ShopTest.java

7.生成的xml文件

以上是以一个简单的商店订单模型作为示例。

java jaxb 注解_JAXB注解使用相关推荐

  1. java jaxb 注解_JAXB注解

    JAXB(Java API for XML Binding),它提供了一个便捷的方式高速Java对象XML转变.于JAX-WS(Java的WebService规范之中的一个)中,JDK1.6 自带的版 ...

  2. java jaxb 注解_JAXB注解的使用详解

    一.简介 1.概念是什么:(Java Architecture for XML Binding) 是一个业界的标准,即是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了 ...

  3. java jaxb教程_JAXB使用教程-Learn form examples

    JAXB教程 Java为处理XML文件和结构提供了多种选择,目前应用最为广泛的是JAXB工具库.JAXB代表了Java处理XML文件的事实上标准,它提供了Java对象与XML文本之间互相转换的功能.从 ...

  4. java 继承 注解_在java中实现组合注解原理分析(注解继承)

    今天在自定义注解的时候,原计划实现一个类似于Spring中的注解@Component的功能,如果稍有留意一下,会发现,在Spring中我们常见的注解,其实都继承了@Component注解:如下图所示: ...

  5. java uv实例_Java注解的实际应用案例讲解

    前言 注解确实是一个很强大的功能,是的开发效率大幅度提高.在Android开发中,比较有名气的注解框架当属:Butterknife.https://github.com/JakeWharton/but ...

  6. java 中的 Annotation 注解学习笔记

    java 中的 Annotation 注解 什么是注解 元注解 @Target @Retention @Document @Inherited 自定义注解 什么是注解 Annotation 是从JDK ...

  7. 【Java注解】注解基础

    笔记来源:IMOOC Java注解 注解的分类 按照运行机制分 源码注解:注解只在源码中存在,编译成 .class 文件就不存在了 编译时注解:注解在源码和 .class 文件中都存在 运行时注解:在 ...

  8. 浅谈Java/Android下的注解

    什么是注解 java.lang.annotation,接口 Annotation,在JDK5.0及以后版本引入. 注解是代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相应的处理.通 ...

  9. java 解析注解_Java知识点总结(注解-解析注解)

    Java知识点总结(注解-解析注解) @(Java知识点总结)[Java, 注解] 通过反射获取类.函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑. 使用注解步骤: 定义注解 类中使用注 ...

最新文章

  1. C#中关于处理两个大数相乘的问题
  2. 密码认证协议PAT怎么配置?
  3. vxworks gcc linux,针对VxWorks的GCC交叉编译器无法编译C++
  4. Premature Optimization
  5. php如何转类型,PHP数据类型转换
  6. java如何处理灰度图片_Java图片的灰度处理方法
  7. 感到压力时,你秃的是头,而TA秃的是屁股
  8. OpenShift:外国的免费云平台
  9. mysql数据库技术_MySQL数据库技术(13)[组图]_MySQL
  10. C#正则表达式通过HTML提取网页中的图片src
  11. python字典统计排序1_python笔记17-字典如何按value排序
  12. 2022届计算机毕业论文(设计)学生选题参考合集推荐收藏
  13. CDA-LEVEL 1 数据分析师一级经验总结
  14. h5浏览器——扫码功能
  15. 阿里云 ECS 服务等级协议 SLA是什么?
  16. Mac如何破解管理员密码
  17. 亿晟科技人脸识别门禁系统方案整体解决办法
  18. 爽!Android模拟器可以运行ARM应用了
  19. Only fullscreen activities can request orientation终极解决方法
  20. linux 卸载dnw命令,linux下面安装dnw

热门文章

  1. ctf图片隐写中改变图片高和宽
  2. Oracle数据库----删除数据库
  3. m3u8合成视频 linux,m3u8文件什么合成便于播放的MP4的方法
  4. DappNode Host:打破普通人接触PHA的壁垒
  5. 详解编辑距离算法-Levenshtein Distance
  6. python宣传片_我用Python告诉你“2019春节档”必看影片
  7. easy ui treegrid使用
  8. 横向领导力--成长有感
  9. 手机基站定位数据可视分析
  10. 总裁演说思维:口才训练方法留言评论法