java jaxb 注解_JAXB注解使用
一.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注解使用相关推荐
- java jaxb 注解_JAXB注解
JAXB(Java API for XML Binding),它提供了一个便捷的方式高速Java对象XML转变.于JAX-WS(Java的WebService规范之中的一个)中,JDK1.6 自带的版 ...
- java jaxb 注解_JAXB注解的使用详解
一.简介 1.概念是什么:(Java Architecture for XML Binding) 是一个业界的标准,即是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了 ...
- java jaxb教程_JAXB使用教程-Learn form examples
JAXB教程 Java为处理XML文件和结构提供了多种选择,目前应用最为广泛的是JAXB工具库.JAXB代表了Java处理XML文件的事实上标准,它提供了Java对象与XML文本之间互相转换的功能.从 ...
- java 继承 注解_在java中实现组合注解原理分析(注解继承)
今天在自定义注解的时候,原计划实现一个类似于Spring中的注解@Component的功能,如果稍有留意一下,会发现,在Spring中我们常见的注解,其实都继承了@Component注解:如下图所示: ...
- java uv实例_Java注解的实际应用案例讲解
前言 注解确实是一个很强大的功能,是的开发效率大幅度提高.在Android开发中,比较有名气的注解框架当属:Butterknife.https://github.com/JakeWharton/but ...
- java 中的 Annotation 注解学习笔记
java 中的 Annotation 注解 什么是注解 元注解 @Target @Retention @Document @Inherited 自定义注解 什么是注解 Annotation 是从JDK ...
- 【Java注解】注解基础
笔记来源:IMOOC Java注解 注解的分类 按照运行机制分 源码注解:注解只在源码中存在,编译成 .class 文件就不存在了 编译时注解:注解在源码和 .class 文件中都存在 运行时注解:在 ...
- 浅谈Java/Android下的注解
什么是注解 java.lang.annotation,接口 Annotation,在JDK5.0及以后版本引入. 注解是代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相应的处理.通 ...
- java 解析注解_Java知识点总结(注解-解析注解)
Java知识点总结(注解-解析注解) @(Java知识点总结)[Java, 注解] 通过反射获取类.函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑. 使用注解步骤: 定义注解 类中使用注 ...
最新文章
- C#中关于处理两个大数相乘的问题
- 密码认证协议PAT怎么配置?
- vxworks gcc linux,针对VxWorks的GCC交叉编译器无法编译C++
- Premature Optimization
- php如何转类型,PHP数据类型转换
- java如何处理灰度图片_Java图片的灰度处理方法
- 感到压力时,你秃的是头,而TA秃的是屁股
- OpenShift:外国的免费云平台
- mysql数据库技术_MySQL数据库技术(13)[组图]_MySQL
- C#正则表达式通过HTML提取网页中的图片src
- python字典统计排序1_python笔记17-字典如何按value排序
- 2022届计算机毕业论文(设计)学生选题参考合集推荐收藏
- CDA-LEVEL 1 数据分析师一级经验总结
- h5浏览器——扫码功能
- 阿里云 ECS 服务等级协议 SLA是什么?
- Mac如何破解管理员密码
- 亿晟科技人脸识别门禁系统方案整体解决办法
- 爽!Android模拟器可以运行ARM应用了
- Only fullscreen activities can request orientation终极解决方法
- linux 卸载dnw命令,linux下面安装dnw