- Spring OXM 简介
Spring OXM 是 Spring Framework 中的一个模块,主要用于支持对象到 XML 和 XML 到对象的互相转换。OXM 是 Object/XML Mapping 的缩写,常用于系统之间的数据传输或存储,例如将 Java 对象序列化为 XML 格式存入数据库或者网络传输,另一方也可以将 XML 格式还原为 Java 对象。
- Spring OXM 入门实战
2.1. 添加依赖
首先,我们需要在 pom.xml 中添加 Spring OXM 的依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
2.2. 创建示例对象
我们先创建一个 User 类,用于演示对象到 XML 的转换。
public class User {
private String name;
private int age;
//构造方法和 getter/setter 略
}
2.3. 创建 XML 文件
接下来,我们创建一个 user.xml 文件,用于演示 XML 到对象的转换。
<?xml version="1.0" encoding="UTF-8"?>
<user>
<name>Tom</name>
<age>18</age>
</user>
2.4. 对象到 XML 的转换
我们可以使用 Spring OXM 中提供的 Marshaller 接口,将 Java 对象转换为 XML。先创建一个 User 类型的对象,然后使用 Jaxb2Marshaller 进行转换:
User user = new User("Tom", 18);
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setClassesToBeBound(User.class);
StringWriter writer = new StringWriter();
marshaller.marshal(user, new StreamResult(writer));
String xml = writer.toString();
System.out.println(xml);
运行结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
<age>18</age>
<name>Tom</name>
</user>
2.5. XML 到对象的转换
我们可以使用 Spring OXM 中提供的 Unmarshaller 接口,将 XML 转换为 Java 对象。先创建一个 Jaxb2Marshaller,然后使用它进行转换:
String xml = "<user><name>Tom</name><age>18</age></user>";
Jaxb2Marshaller unmarshaller = new Jaxb2Marshaller();
unmarshaller.setClassesToBeBound(User.class);
User user = (User) unmarshaller.unmarshal(new StreamSource(new StringReader(xml)));
System.out.println(user.getName() + ", " + user.getAge());
运行结果:
Tom, 18
至此,我们已经完成了 Spring OXM 的入门实例,可以将对象转换为 XML 或将 XML 转换为对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring oxm入门实例 - Python技术站