转自:http://www.yiibai.com/spring/spring-objectxml-mapping-example.html
package com.yiibai.core.model;
public class Customer {
String name;
int age;
boolean flag;
String address;
//standard getter, setter and toString() methods.
}
package com.yiibai.core;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
public class XMLConverter {
private Marshaller marshaller;
private Unmarshaller unmarshaller;
public Marshaller getMarshaller() {
return marshaller;
}
public void setMarshaller(Marshaller marshaller) {
this.marshaller = marshaller;
}
public Unmarshaller getUnmarshaller() {
return unmarshaller;
}
public void setUnmarshaller(Unmarshaller unmarshaller) {
this.unmarshaller = unmarshaller;
}
public void convertFromObjectToXML(Object object, String filepath)
throws IOException {
FileOutputStream os = null;
try {
os = new FileOutputStream(filepath);
getMarshaller().marshal(object, new StreamResult(os));
} finally {
if (os != null) {
os.close();
}
}
}
public Object convertFromXMLToObject(String xmlfile) throws IOException {
FileInputStream is = null;
try {
is = new FileInputStream(xmlfile);
return getUnmarshaller().unmarshal(new StreamSource(is));
} finally {
if (is != null) {
is.close();
}
}
}
}
引用
xml配置
<bean id="XMLConverter" class="com.yiibai.core.XMLConverter">
<property name="marshaller" ref="castorMarshaller" />
<property name="unmarshaller" ref="castorMarshaller" />
</bean>
<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller" />
引用
运行测试
package com.yiibai.core;
import java.io.IOException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yiibai.core.model.Customer;
public class App {
private static final String XML_FILE_NAME = "customer.xml";
public static void main(String[] args) throws IOException {
ApplicationContext appContext = new ClassPathXmlApplicationContext("App.xml");
XMLConverter converter = (XMLConverter) appContext.getBean("XMLConverter");
Customer customer = new Customer();
customer.setName("yiibai");
customer.setAge(28);
customer.setFlag(true);
customer.setAddress("Haikou haidiandao");
System.out.println("Convert Object to XML!");
//from object to XML file
converter.convertFromObjectToXML(customer, XML_FILE_NAME);
System.out.println("Done \n");
System.out.println("Convert XML back to Object!");
//from XML to object
Customer customer2 = (Customer)converter.convertFromXMLToObject(XML_FILE_NAME);
System.out.println(customer2);
System.out.println("Done");
}
}
引用
输出:
Convert Object to XML!
Done
Convert XML back to Object!
Customer [name=yiibai, age=28, flag=true, address=Haikou Haidiandao]
Done
分享到:
相关推荐
在实际项目中,XML反射常用于配置文件解析,比如Spring框架就是通过XML配置文件来管理依赖注入。通过反射,我们可以根据XML配置动态地创建和配置对象,实现高度的灵活性。 总结起来,XML反射结合了XML的数据表示...
本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,现在这一篇补上。下面开始贴代码。 文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下。 先说...
在Spring MVC中,我们可以通过配置`JacksonHttpMessageConverter`来让Spring自动处理JSON数据的序列化和反序列化。在`WebConfig`配置类中,添加以下代码: ```java @Configuration @EnableWebMvc public class ...
在本文中,我们将深入探讨如何将Spring框架与Redis集成,特别是在非集群环境下,结合Spring的Template和连接池,以及使用JSON和JDK序列化技术。首先,我们需要理解Spring的RedisTemplate,它是一个强大的工具,允许...
```xml <groupId>org.apache.poi <artifactId>poi <version>3.17 <groupId>org.apache.poi <artifactId>poi-ooxml <version>3.17 ``` OfficeUtils 工具类 创建一个名为 OfficeUtils 的工具类,该类提供...
Jackson 可以很好地与Spring、Hibernate等其他框架集成,简化数据绑定和转换过程。 10. **博文链接中的知识点** 博文链接(已失效)可能涉及实际案例或教程,包括但不限于使用Jackson解析JSON,自定义序列化规则...
Java反射和Digester库是Java开发中的两个重要概念,它们在处理动态代码执行和XML文档解析方面发挥着关键作用。 **Java反射** 是Java语言的一个强大特性,它允许程序在运行时检查和操作类、接口、方法和字段。通过...
通过结合XStream和Jettison,开发者可以在Java应用中实现XML和JSON的无缝转换。 首先,我们需要在项目中引入XStream和Jettison的依赖。在本例中,我们有`xstream-1.3.1.jar`和`jettison-1.0.1.jar`。这两个JAR文件...
在这个“java dom4j 简单示例”中,我们将探讨如何在Spring框架的上下文中,结合数据库操作,使用DOM4J生成XML文档,并进一步利用Transformer进行XSLT转换。 首先,DOM4J的核心概念是Document对象,它代表整个XML...
例如,`parseXmlFile(String filePath)`用于解析XML文件,`writeXmlFile(Object obj, String filePath)`可能用于将Java对象转换为XML并写入文件,`getElementByXPath(String xpath)`则通过XPath表达式查询XML节点。...
SpringAOP中的注解配置详解是Spring框架中的一种非常重要的技术,它允许开发者在不修改源代码的情况下实现对业务逻辑的拦截和扩展。本文将详细介绍SpringAOP中的注解配置详解,包括使用注解实现SpringAOP的功能、XML...
在 SpringJUnit4ClassRunner 和 MockMvc 的帮助下,可以创建一个 Web 应用程序上下文来为 Rest Controller 文件编写单元测试。单元测试应该写在 src/test/java 目录下,用于编写测试的类路径资源应该放在 src/test/...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web开发中,尤其是在Java Web和Ajax(Asynchronous JavaScript and XML)交互中。JSON库如json-lib为Java提供了序列化和反序列化的能力,...
Spring 3表达式语言(Expression Language,简称SpEL)是Spring框架中的一个重要组成部分,它提供了一种强大且灵活的方式来在运行时查询和操作对象图。SpEL被广泛应用于配置文件、注解以及Spring的其他组件中,使得...
而SpringBoot是基于Spring框架的微服务开发工具,简化了Spring应用的初始搭建以及开发过程。下面我们将详细讨论如何在SpringBoot项目中整合Mina,并自定义解码器。 首先,我们需要在SpringBoot项目中添加Mina的相关...
3. **XML与JSON转换**:`json-lib`还支持XML和JSON之间的相互转换,这对于需要在XML和JSON之间切换的场景非常有用。 4. **多版本兼容**:`json-lib`可能包含不同版本的jar包,以满足不同Java环境或项目的需求。不同...
首先,SpringMVC是Spring框架的一部分,是一个轻量级的MVC(Model-View-Controller)架构,它为Java开发者提供了一个灵活的Web应用开发模型。通过定义控制器、服务层和视图,SpringMVC能够将业务逻辑和表现层解耦,...
综上所述,Struts 2、Spring和Hibernate是构成J2EE技术栈的重要组成部分,掌握这些框架的基本原理和使用方法对于开发高质量的企业级应用至关重要。通过深入理解这些框架的特点和应用场景,可以有效地提升开发效率和...
RESTFUL + SPRINGMVC + C3P0连接池 的完美实现. 传递json数据到springmvc自动转为obj。obj传前台可直接转换为json。 rest配置文件内 修改,可同理兼容 JSON XML AMF 或其他各种。
- `JSON.toJSONString(Object obj)`:将Java对象转换为JSON字符串。 - `JSON.parseObject(String text, Class<T> clazz)`:将JSON字符串解析为指定类型的Java对象。 - `JSON.parseArray(String text, Class<T> ...