文档章节

JAXB之HelloWorld.入门小DEMO.

Zhao-Qian
 Zhao-Qian
发布于 2012/11/16 15:55
字数 486
阅读 1787
收藏 2

直接贴代码好哇...

首选是实体对象.

package org.credo;

import java.io.Serializable;

import javax.inject.Named;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

/**
 * @XmlAccessorType(XmlAccessType.FIELD)指定映射本类的所有字段
 * @XmlRootElement 用在class类的注解,常与@XmlRootElement,@XmlAccessorType一起使用.也可以单独使用,如果单独使用,需要在get方法上加@XmlElement等注解.
 * @XmlType,在使用@XmlType的propOrder 属性时,必须列出JavaBean对象中的所有XmlElement,否则会报错。
 * @author ZhaoQian
 * 
 */
@Named
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Customer")
@XmlType(name = "Customer", propOrder = { "age", "name" })
public class Customer implements Serializable {

	private static final long serialVersionUID = 1L;
	
	// 其实@XmlType已经默认会读取下面的name和age.@XmlElement在@XmlType存在的情况下,只会起到一个标识作用.
	@XmlAttribute
	int id;
	@XmlElement
	String name;
	@XmlElement
	int age;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}
然后是将java对象转换为xml变相的main方法.
package org.credo;

import java.io.File;

import javax.inject.Inject;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

/**
 *JAXB,输出一个XML文件进行交互.
 */
public class JaxbExample {
	
	@Inject Customer customer;
	
	public static void main(String[] args) {
		Customer cus=new Customer();
		cus.setId(1);
		cus.setName("Hello World!");
		cus.setAge(26);
		
		try {
			File file=new File("D:\\HelloWorld.xml");
			//初始化JAXBContext.JAXBContext类提供的JAXB API的客户端的入口点。
			//它提供一个抽象的用于管理XML / Java绑定的必要信息,以实现JAXB绑定框架行动:解组,编组和验证。
			JAXBContext jc=JAXBContext.newInstance(Customer.class);
			//将Java对象Marshal成XML内容的Marshal的初始化设置.
			Marshaller jaxbMarshaller=jc.createMarshaller();
			//output
			jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
			jaxbMarshaller.marshal(cus, file);
			jaxbMarshaller.marshal(cus, System.out);
			
		} catch (JAXBException e) {
			System.out.println("output xml error!");
			e.printStackTrace();
		}
	}
	
	/**
	 * Test CDI
	 */
	public void processXml(){
		this.customer.setAge(26);
		this.customer.setId(1);
		this.customer.setName("HelloWorld");
	}
}
接着和上面反着来.
package org.credo;

import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

/**
 *读取一个XML文件并输出对象.
 */
public class XMLExample {

	public static void main(String[] args) {
		File file=new File("D:\\HelloWorld.xml");
		try {
			//反着来
			JAXBContext jc=JAXBContext.newInstance(Customer.class);
			Unmarshaller unmarshaller=jc.createUnmarshaller();
			Customer cus=(Customer) unmarshaller.unmarshal(file);
			System.out.println("data:"+cus);
			System.out.println("data:"+cus.getId());
			System.out.println("data:"+cus.getName());
			System.out.println("data:"+cus.getAge());
		} catch (JAXBException e) {
			System.out.println("input xml error!");
			e.printStackTrace();
		}
		
	}

}

= =!

© 著作权归作者所有

共有 人打赏支持
Zhao-Qian
粉丝 310
博文 158
码字总数 238167
作品 0
朝阳
技术主管
加载中

评论(4)

Zhao-Qian
Zhao-Qian

引用来自“小小贝”的评论

引用来自“Credo”的评论

引用来自“小小贝”的评论

楼主牛B啊

滚蛋,你丫又来笑话我了......这个在OS上红薯老大写的,我学红薯的.

楼主经过深入理解红薯大大文章后,写得如些神作啊。

贝哥不要这么无耻啊.
小小贝
小小贝

引用来自“Credo”的评论

引用来自“小小贝”的评论

楼主牛B啊

滚蛋,你丫又来笑话我了......这个在OS上红薯老大写的,我学红薯的.

楼主经过深入理解红薯大大文章后,写得如些神作啊。
Zhao-Qian
Zhao-Qian

引用来自“小小贝”的评论

楼主牛B啊

滚蛋,你丫又来笑话我了......这个在OS上红薯老大写的,我学红薯的.
小小贝
小小贝
楼主牛B啊
CXF的简单使用

Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,...

蜡笔小小小新
2015/09/26
19
0
CXF3.0.2+Spring3.2.14 Web Service入门实例二

离上次学习CXF的时间比较长了,最近一直在忙别的项目,没有时间再继续学习CXF,也就没有再写博客了!今天有点时间,再写一篇,把CXF3.0.7与spring3.2.14整合写出来。本来应该写apache-cxf-3....

jnzsf
2016/06/08
0
0
spring结合apache cxf发布web service服务

首先下载apache cxf压缩包,到apache官方网站下载。将lib目录下的jar文件都拷贝到自己的项目lib下面。这里我的项目名为cxfservice 2. 配置sring的配置文件如下: 创建webservice服务接口 pa...

linsir
2011/03/15
0
1
动态服务器 webcppd 1.0.1,精简服务器代码

动态服务器 webcppd 1.0.1发布了。 webcppd是基于C++ 编程框架Poco 开发的一款高性能HTTP服务器,它通过插件加载来响应web请求并完成计算。 它约定了一套简单实用地插件式web开发流程,能够极...

所以呢
2016/08/29
2.6K
17
基于SOA 思想下的WebService实战资料分享

跟大家分享基于SOA 思想下的WebService实战(电子商务需求,分析,架构全涉及,百万数据优化) 课程讲解内容涵盖: 第1章 CXF框架快速起步(2课时) Webservice技术规则 Java-WebService技术规范...

abcfhl
2013/06/24
1K
7

没有更多内容

加载失败,请刷新页面

加载更多

wait()被notify()后,接着执行wait()后面的语句

wait()被notify()后,接着执行wait()后面的语句

noteman
9分钟前
0
0
Ubuntu集群-使用MAAS开始裸机安装

Ubuntu使用MAAS装机的七个步骤。 1、Setup your hardware You need one small server for MAAS and at least one server which can be managed with a BMC. It is recommended to have the M......

openthings
22分钟前
0
0
OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部