日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了Spring Batch:創(chuàng)建從Web服務(wù)讀取XML文件的ItemReader的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我正在嘗試創(chuàng)建一個Spring批處理作業(yè),該作業(yè)將處理將通過睡覺調(diào)用提供的xml文件。

我正在嘗試使用Internet上托管的XML文件來測試這一點。該文件位于:http://www.w3schools.com/xml/plant_catalog.xml

我在本地下載了此文件,并能夠?qū)⑵滢D(zhuǎn)換為對象并寫入,但如果不將文件下載到本地,我不知道如何才能做到這一點。這在本地有效,但是如何將URL指定為XML文件要讀取的資源呢?謝謝:)

Launch-context.xml

    <batch:job id="job1">
    <batch:step id="step1">
        <batch:tasklet transaction-manager="transactionManager" start-limit="100" >
            <batch:chunk reader="CustomPlantReader" writer="writer" commit-interval="1" />
        </batch:tasklet>
    </batch:step>
</batch:job>

自定義讀卡器bean:

    <bean id="CustomPlantReader" class="org.springframework.batch.item.xml.StaxEventItemReader" scope="step">
    <property name="fragmentRootElementName" value="PLANT" />
    <property name="resource" value="file:/C:/source/plant_catalog.xml" />
    <property name="unmarshaller" ref="PlantUnmarshaller" />
</bean>

<bean id="PlantUnmarshaller" class="org.springframework.oxm.castor.CastorMarshaller">
    <property name="ignoreExtraElements" value="true" />
    <property name="mappingLocation" value="linemapper/mapping.xml" />
</bean>

作為參考,如果任何人想要查看mapping.xml文件,其外觀如下所示。它將XML節(jié)點映射到名為Plant.java的域?qū)ο?/p>

<mapping>
<class name="com.example.project.Plant">
    <map-to xml="PLANT" />

    <field name="common" type="string">
        <bind-xml name="COMMON" node="element"/>
    </field>
    <field name="botanical" type="string">
        <bind-xml name="BOTANICAL" node="element"/>
    </field>
    <field name="zone" type="string">
        <bind-xml name="ZONE" node="element"/>
    </field>
    <field name="light" type="string">
        <bind-xml name="LIGHT" node="element"/>
    </field>
    <field name="price" type="string">
        <bind-xml name="PRICE" node="element"/>
    </field>
    <field name="availability" type="string">
        <bind-xml name="AVAILABILITY" node="element"/>
    </field>

</class></mapping>

推薦答案

StaxEventItemReader接受Resource。
看一下documentation,您會發(fā)現(xiàn)您可以很容易地使用不在您的文件系統(tǒng)上的資源。任何可以獲取InputStream的內(nèi)容都可能轉(zhuǎn)換為資源。
據(jù)我所知,默認使用UrlResource,后備為ClasspathResource。

4.3.1。URL資源

UrlResource包裝了java.net.URL,并可用于訪問任何通??赏ㄟ^URL訪問的對象,如文件、
HTTP目標、FTP目標等。所有URL都具有標準化字符串
表示,以便使用適當?shù)臉藴驶熬Y
若要指示不同的URL類型,請執(zhí)行以下操作。這包括FILE:FOR
訪問文件系統(tǒng)路徑,http:用于通過HTTP訪問資源
協(xié)議、ftp:用于通過FTP等訪問資源。
UrlResource由Java代碼使用UrlResource構(gòu)造函數(shù)顯式創(chuàng)建,但在執(zhí)行以下操作時通常會隱式創(chuàng)建
調(diào)用帶有字符串參數(shù)的API方法,該參數(shù)旨在
表示一條路徑。對于后一種情況,JavaBeans PropertyEditor將
最終決定要創(chuàng)建哪種類型的資源。如果路徑字符串
包含一些眾所周知的(也就是)前綴,如
classpath:,它將為以下對象創(chuàng)建適當?shù)膶S觅Y源
那個前綴。但是,如果它不能識別前綴,它將
假設(shè)這只是一個標準URL字符串,并將創(chuàng)建一個
UrlResource。

所以您可以使用以下命令:

<property name="resource" value="http://www.w3schools.com/xml/plant_catalog.xml" />

這篇關(guān)于Spring Batch:創(chuàng)建從Web服務(wù)讀取XML文件的ItemReader的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:Batch Spring xml 創(chuàng)建 文件 服務(wù) 讀取
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定