最代碼廣告位
統統最代碼的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 LV22018年10月24日
星星星星
james4lee LV112018年9月17日
月亮月亮星星星星星星
479964140 LV92018年8月9日
月亮月亮星星
安安an LV162018年8月2日
太陽
sp朱盼 LV162018年5月4日
太陽
jic499 LV272018年4月13日
太陽月亮月亮星星星星星星
lovesoo6 LV22018年3月19日
星星星星
liangpc LV62018年2月23日
月亮星星星星
wsly98 LV12018年2月11日
星星
Hassid LV22018年1月8日
星星星星
最代碼最近瀏覽分享源代碼列表最近瀏覽
huohal LV212月2日
星星星星
hxhufo008 LV311月18日
星星星星星星
tootootoo LV311月14日
星星星星星星
mooncharmzx LV110月20日
星星
Jason_zqw LV310月14日
星星星星星星
lby970321 LV29月11日
星星星星
nc_demo1 LV38月21日
星星星星星星
lelelada LV58月21日
月亮星星
戎碼一生 LV138月5日
月亮月亮月亮星星
laiba117月11日
暫無貢獻等級
最代碼廣告位
頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
福彩3d组选020前后关系