JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。
可以让Java对象和XML文档进行相互的转换。
假设有一个POJO是这样的。
package com.xyz;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Boy
{
String name = "张三";
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
类上面的注解@XmlRootElement表明Boy这个类为XML文档的根元素
再写一个单元测试类 测试
package org.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.StringReader;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.transform.stream.StreamSource;
import org.junit.Test;
import com.xyz.Boy;
public class JAXBTest
{
@Test
public void jAXBTest() throws JAXBException, FileNotFoundException
{
JAXBContext context = JAXBContext.newInstance(Boy.class);
Marshaller marshaller = context.createMarshaller();
Boy boy = new Boy();
marshaller.marshal(boy,new FileOutputStream("welcome.xml"));
System.out.println("==================================");
Unmarshaller unmarshaller = context.createUnmarshaller();
Boy boy2 = (Boy) unmarshaller.unmarshal(new StreamSource(new File("welcome.xml")));
System.out.println(boy2.getName());
}
}
注意其中的Marshaller Unmarshaller为两个核心类。可以对XML文档和Java对象进行相互转换。