Spring 对象XML映射

OXM简介

我们都知道对象关系映射(ORM),用来将Java对象和关系型数据库的数据进行映射。Spring也提供了一套类似的映射机制,用来将Java对象和XML文件进行映射。这就是Spring的对象XML映射功能,有时候也成为XML的序列化和反序列化。

这套功能的最基本的两个接口就是org.springframework.oxm.Marshallerorg.springframework.oxm.Unmarshaller,前者用于将Java对象转换成XML文件,后者用于将XML文件转换成Java对象。

Marshaller接口如下,它有一个marshal方法,包含要序列化的对象,结果会返回到Result参数上。Result也是一个接口,相应的有几个实现DOMResult、SAXResult和StreamResult,代表几种不同的XML技术。

public interface Marshaller {

    void marshal(Object graph, Result result) throws XmlMappingException, IOException;
}

Unmarshaller接口也是类似的,它有一个unmarshal方法,将传入的Source反序列化Java对象。相应的Source也有三个实现DOMSource、SAXSource和StreamSource,代表这几种技术。

public interface Unmarshaller {

    Object unmarshal(Source source) throws XmlMappingException, IOException;
}

基本使用

要使用Spring的OXM功能,需要添加它的依赖。如果使用Gradle,添加下面的依赖项。

compile group: 'org.springframework', name: 'spring-oxm', version: '4.3.6.RELEASE'

Spring提供了几个Marshaller和Unmarshaller接口的实现,用来进行各种转换操作。我们来使用最简单的一个转换器CastorMarshaller,它同时实现了Marshaller和Unmarshaller接口,因此我们可以使用它同时进行序列化和反序列化。同时它不需要其他额外配置。在配置文件中,声明如下一个Bean。

<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller"/>

我们来定义一个实体类来进行XML序列化和反序列化,方法已省略,只列出字段。

public class User {
    private int id;
    private String name;
    private int age;
}

然后我们使用一个方法来测试

public class OXMT
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值