Spring Batch对XML文件的读写操作demo实例
本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作。实例流程是从一个XML文件中读取商品信息,经过简单的处理,写入另外一个XML文件中。
工程结构如下图:
项目说明:
1、XMLLaunch类用来启动Job,
2、XMLProcessorr类用来对Reader取得的数据进行处理,
3、Goods类是一个POJO类,用来存放映射的数据。
4、input.xml是数据读取文件, output.xml是数据输出文件。
本Job包含一个Step,完成一个完整的xml文件读写功能。分别由 xmlReader完成文件的读操作,由 xmlProcessor完成对取得数据的处理,由 xmlWriter完成对xml文件的写操作。
xmlReader对XML文件读操作。对XML的读是由SpringBatch提供的StaxEventItemReader类来完成。要读取一个XML文件,首先要知道这个文件的存放路径,resource属性就是指定文件路径信息的。知道了文件路径,还需要知道要读取的XML的根节点名称,fragmentRootElementName属性就是指定根节点名称的。知道了根节点名称,还需要知道的一点就是怎么解析这个节点信息,unmarshaller就负责完成解析节点信息,并映射成程序pojo对象。注意,根节点并不是指整个XML文件的根节点,而是指要读取的信息片段的根节点,不管这个节点片段处在哪一层,框架都会遍历到。
tradeMarshaller解析XML节点信息的unmarshaller。其中entry的key指定对应根节点名称goods,value指定程序的pojo类,这样,程序就可以将goods节点下的子节点与pojo类(Goods)中的属性去匹配,当匹配到子节点名与pojo类中的属性名相同时,就会将子节点的内容赋值给pojo类的属性。这样就完成了一个根节点的读取,框架会控制循环操作,直到将文件中所有根(goods)节点全部读完为止。这样就完成了XML文件的读操作。
xmlWriter对XML文件的写操作。与读XML文件一样,要写一个XML文件,也是需要知道这个文件的文件的存放路径的,同样是resource属性提供文件的路径信息。同时,也是需要知道这个文件的跟节点信息的,rootTagName属性提供根节点名信息。注意此处的根节点,指整个文件的跟节点,与读得时候稍有区别,从两个属性的名称上也可以看出。有了上面的信息,完成一个写操作,还需要一个把pojo对象转换成XML片段的工具,由marshaller提供。本文读操作的unmarshaller和写操作的marshaller用的是同一个转换器,因为XStreamMarshaller既提供将节点片段转换为pojo对象功能,同时又提供将pojo对象持久化为xml文件的功能。如果写的内容与读得内容有很大差异,可以另外配置一个转换器。
input.xml文件内容如下:
处理结果如下(output.xml):
猜你喜欢
- java读写操作xml文件
- Spring Batch入门实例教程实现对CVS文件的操作
- XML文件解析java工具类dom4J使用实例
- dom4j操作xml文件读取插入的实例
- Java通过jdom操作生成XML文件的实例代码下载
- spring基于多个xml文件配置实现初始化bean的实例
- java XML文件解析,超简单DEMO
- 分享java读写Properties文件
- java对比IO和NIO的文件读写性能测试
- 不依赖第三方jar包的通过java sax解析本地xml文件的实例代码
- jaxb操作xml文件(自定义xml namespace 前缀,可以有多个namespace)
- java读取XML文件通用工具类(递归调用)
- /
- /SpringBatchXML
- /SpringBatchXML/.classpath
- /SpringBatchXML/.project
- /SpringBatchXML/.settings
- /SpringBatchXML/.settings/org.eclipse.core.resources.prefs
- /SpringBatchXML/.settings/org.eclipse.jdt.core.prefs
- /SpringBatchXML/.settings/org.eclipse.m2e.core.prefs
- /SpringBatchXML/lib
- /SpringBatchXML/lib/spring-aop-3.2.4.RELEASE.jar
- /SpringBatchXML/lib/spring-batch-core-2.1.8.RELEASE.jar
- /SpringBatchXML/lib/spring-batch-infrastructure-2.1.8.RELEASE.jar
- /SpringBatchXML/lib/spring-beans-3.2.4.RELEASE.jar
- /SpringBatchXML/lib/spring-context-3.2.4.RELEASE.jar
- /SpringBatchXML