[Java教程]JAVA开发Webservice——JAXB

0

2016-01-19 17:00:04

JAXB(Java API for

JAXB 可以实现Java对象与

下面来了解一下如何通过标注注解来完成 Marshal 和 UnMarshal 的过程。

首先看个小例子:

定义一个java类1 package jaxb; 2 3 import javax. 4 import javax. 5 import javax. 6 7 @ { 8 "name", 9 "age",10 "id"11 })12 @)13 public class Student14 {15 @)16 public int id = 1;17 @)18 public String name = "ldd";19 @)20 public int age = 18;21 @Override22 public String toString()23 {24 return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";25 }26 }

Java To1 package jaxb; 2 3 import javax. 4 import javax. 5 import javax. 6 7 public class JavaTo 8 { 9 public static void main(String[] args) throws JAXBException10 {11 JAXBContext context = JAXBContext.newInstance(Student.class);12 Marshaller marshaller = context.createMarshaller();13 marshaller.setProperty(Marshaller.JAXB_ENCODING, "utf-8");//编码格式 14 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);//是否格式化生成的15 marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);//是否省略16 Student student = new Student();17 marshaller.marshal(student, System.out);18 }19 }

输出结果如下:?>ldd181

1 package jaxb; 2 3 import java.io.File; 4 5 import javax. 6 import javax. 7 import javax. 8 9 10 public class 11 {12 public static void main(String[] args) throws JAXBException13 {14 JAXBContext context = JAXBContext.newInstance(Student.class);15 Unmarshaller unmarshaller = context.createUnmarshaller();16 File file = new File("src/main/java/student.);17 Student student = (Student) unmarshaller.unmarshal(file);18 System.out.println(student);19 }20 }

其实Marshal 和 UnMarshal的过程并不复杂,只需要从JAXBContext中获得Marshaller或Unmarshaller对象,就可以让JAXB帮我们来进行转换了。我们需要操作的主要内容是定义一个规则,告诉JAXB如何将一个类、按照什么样的格式转换为@将一个Java类映射为一段name            定义这个根节点的名称

namespace   定义这个根节点命名空间

@定义映射这个类中的何种类型需要映射到

@指定一个字段或get/set方法映射到

如,当一个类的defaultValue  指定节点默认值

name             指定节点名称

namespace    指定节点命名空间

required         是否必须(默认为false)

nillable  该字段是否包含 nillable="true" 属性(默认为false)

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

@指定一个字段或get/set方法映射到name             指定属性名称

namespace    指定属性命名空间

required         是否必须(默认为false)

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

如,当一个类的

@定义映射的一些相关规则propOrder        指定映射

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

factoryMethod  指定工厂类的工厂方法

name               定义

namespace      指定Schema中的命名空间

@为数组元素或集合元素定义一个父节点。如,类中有一元素为List items,若不加此注解,该元素将被映射为

...

...

这种形式,此注解可将这个元素进行包装,如:

@    @    public List items;

将会生成这样的

...

...

@自定义某一字段或属性映射到

如,类中包含一个接口,我们可以定义一个适配器(继承自javax.

@配置整个包的namespace,这个注解需放在package-info.java文件中。

本文网址:http://www.shaoqun.com/a/182230.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JAVA

0

webservice java教程_[Java教程]JAVA开发Webservice——JAXB相关推荐

  1. 新手java安装教程_新手安装Java开发工具图文教程

    类型:编程工具大小:403.4M语言:英文 评分:7.1 标签: 立即下载 写这些文字的目的是为了给像我一样的想学习Java的非计算机专业的人员提供一个简单明了和快速安装Java的方法,这里提到的可能 ...

  2. 达内java作业_【达内JAVA教程】达内Java基础题

    原标题:[达内JAVA教程]达内Java基础题 [达内JAVA教程]达内Java基础题.的小编收集了四道JAVA基础题,下面快来跟随的小编来了解一下吧! 话说很多java程序员学过一段时间后,都应该找 ...

  3. Java国际化教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Java国际化入门教程 - 从简单的步骤了解Java国际化从基本到高级概念,包括概述,环境设置,区域设置,区域设置详细信息,显示语言,ResourceBundle,NumberFormat, ...

  4. Java Regex 教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 正则表达式不仅仅是Java的技术,在任何一门编程语言中都会存在,是一种通用的IT技术,其理念和用法在任何编程语言中基本一致,除了有一些由于语言不同而导致的一些语法不同正则表达式,主要用于匹配 ...

  5. php和java的区别菜鸟教程_浅谈Java和PHP的主要区别

    当谈到PHP与Java的差异性问题时,更多的是回答初学者的一些疑问.对于刚接触IT的同学来说,他们需要做好对未来职业的选择.所以是选择PHP还是选择Java更有利于自身的技术特点和发展前景.所以在解决 ...

  6. 手机java软件_浅谈软件开发就业前景

    ​ 我国信息化人才培养还处于发展阶段,导致社会实际需求人才基数远远大于信息化人才的培养基数,使得数以万计的中小企业急需全面系统掌握软件开发基础技能与知识的软件工程师.目前对软件已达20万并且以每年20 ...

  7. 推荐的Java项目_求点Java项目推荐?

    JAVA优秀的开源项目 Java的学习路线:自学java,学多久可以自己找到工作?_didiao java的博客-CSDN博客​blog.csdn.net啊强啊:java一条龙学习(附练习题,视频,项 ...

  8. java安装_在线学习Java编程的最佳方法

    java安装 1.简介 Java是使用最广泛的编程语言之一. 根据Github的最新报告,Java被列为仅次于JavaScript的第二大最常用的编程语言. 掌握Java的人有很多话题. 好消息是,您 ...

  9. java学习_都说Java难学,不知道具体的学习内容?全套Java学习路线送上

    首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往java ee方向发展的,学习完前端,在学习后端很多东西比计较容易理解! 其中J2SE是关 ...

  10. groovy 使用java类_深入学习java中的Groovy 和 Scala 类

    前言 Java 传承的是平台,而不是语言.有超过 200 种语言可以在 JVM 上运行,它们之中不可避免地会有一种语言最终将取代 Java 语言,成为编写 JVM 程序的最佳方式.本系列将探讨三种下一 ...

最新文章

  1. Go - interface
  2. Dubbo管理控制台的安装
  3. android 获取serialno_[Android]关于Android 唯一设备号(ro.serialno)
  4. Google论文解读:轻量化卷积神经网络MobileNetV2 | PaperDaily #38
  5. PHP中exec()函数执行系统命令失败
  6. 使用 .NET CLI 构建项目脚手架
  7. java 无法执行export 命令_模块中的export、import以及复合模式的使用方法
  8. 绝地求生信号枪只能在服务器吗,绝地求生信号枪怎么用?信号枪刷新点及用法详解...
  9. Zookeeper权限控制ACL详解
  10. Oracle全文索引之三 检索
  11. 随想录(什么是软件架构师)
  12. 2.2.4 ES 6语法与ES 5语法
  13. 基于JAVA的教务排课系统.rar(源码+截图+数据库)
  14. 手把手教你学会用C语言编写井字棋小游戏
  15. Ray Dalio:经济机器是怎样运行的 (时长30分钟) 薛兆丰经济学讲义
  16. 马未都说收藏:陶瓷篇-常见瓷器器形分类
  17. CSDN日报190221——被裁的第50天,我终于拿到心仪公司Offer
  18. 如何选择字体(font-family)
  19. 读JQuery 有感
  20. MPAndroidchart自定义样式二在柱状图上显示文本和间断式显示柱状图

热门文章

  1. 大学英语综合教程二 Unit 1 课文内容英译中 中英翻译
  2. laravel redis 操作命令集
  3. Tortoisegit安装下载
  4. 根据后端返回的文件流下载文件
  5. 黑马JAVA P156 非规律化递归问题:文件搜索、啤酒问题
  6. 吉利集团发展史成本演化(一天的成果)
  7. CSS内容超出元素高度滚动,并且滚动条隐藏
  8. TP5后端,VUE前端请求聚合数据过去的今天
  9. leetcode 91 解码方法 动态规划 递推
  10. 小白用win10还是linux,接触linux的第一天 。丢掉WIN10,(小白Aking的日记)