统统最代码的gravatar头像
统统最代码2016-02-17 16:38:41

Spring Batch对XML文件的读写操作demo实例

本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作。实例流程是从一个XML文件中读取商品信息,经过简单的处理,写入另外一个XML文件中。

工程结构如下图:

Spring Batch对XML文件的读写操作demo实例

项目说明:

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文件内容如下:

Spring Batch对XML文件的读写操作demo实例

处理结果如下(output.xml):

Spring Batch对XML文件的读写操作demo实例


打赏

文件名:SpringBatchXML.rar,文件大小:3198.036K下载
  • /
      • /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
最代码最近下载分享源代码列表最近下载
Hassid1月8日
暂无贡献等级
暂无贡献等级
台球156002017年11月18日
暂无贡献等级
lyh19892017年11月16日
最代码贡献等级说明
szhszh2017年10月27日
暂无贡献等级
zx33130492017年10月16日
暂无贡献等级
annazhang2017年10月7日
最代码贡献等级说明
ltlml422017年9月25日
暂无贡献等级
bfmtbbs2017年8月3日
暂无贡献等级
zhos02122017年7月25日
最代码贡献等级说明
最代码最近浏览分享源代码列表最近浏览
ZentOne1月19日
暂无贡献等级
暂无贡献等级
Hassid1月8日
暂无贡献等级
暂无贡献等级
JiangBigPan1月5日
最代码贡献等级说明
乘龙再现1月5日
最代码贡献等级说明
xuanxin2017年12月27日
暂无贡献等级
mykiss2017年12月15日
最代码贡献等级说明
dream_zhangzihan2017年12月11日
暂无贡献等级
大海中的小蝦米2017年12月6日
暂无贡献等级
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友