统统最代码的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
最代码最近下载分享源代码列表最近下载
bfmtbbs8月3日
暂无贡献等级
zhos02127月25日
最代码贡献等级说明
bowage7月6日
暂无贡献等级
mzoai6月27日
暂无贡献等级
txl8309096月3日
暂无贡献等级
暂无贡献等级
wangautis1月23日
最代码贡献等级说明
9693534982016年4月13日
暂无贡献等级
ljc5203132016年2月19日
最代码贡献等级说明
ts_charles2016年2月18日
最代码贡献等级说明
最代码最近浏览分享源代码列表最近浏览
2037785139月13日
暂无贡献等级
iopjkl8月31日
最代码贡献等级说明
chenzhzdm8月28日
暂无贡献等级
wuyu89958618月25日
暂无贡献等级
shaoming6888月14日
暂无贡献等级
soulfree_cjt8月7日
暂无贡献等级
hhssaaa8月4日
暂无贡献等级
bfmtbbs8月3日
暂无贡献等级
charly217月31日
最代码贡献等级说明
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友