统统最代码的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
最代码最近下载分享源代码列表最近下载
tonnylocal  LV2 2018年10月24日
james4lee  LV11 2018年9月17日
479964140  LV9 2018年8月9日
安安an  LV17 2018年8月2日
sp朱盼  LV16 2018年5月4日
jic499  LV27 2018年4月13日
lovesoo6  LV2 2018年3月19日
liangpc  LV6 2018年2月23日
wsly98  LV1 2018年2月11日
Hassid  LV2 2018年1月8日
最代码最近浏览分享源代码列表最近浏览
chokkint  LV12 2021年10月27日
雾岛听风  LV7 2021年10月20日
Coincidance  LV8 2020年12月3日
chi_haoyan  LV1 2020年10月25日
438265764  LV14 2020年7月27日
我是谁0java  LV11 2020年7月2日
吧唧小瓜子  LV1 2020年6月13日
兰陵2080 2020年6月9日
暂无贡献等级
幻羽揚  LV4 2020年6月9日
码农一枚请收下  LV3 2020年6月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友