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

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

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

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

問題描述

我正在嘗試創建一個Spring批處理作業,該作業將處理將通過睡覺調用提供的xml文件。

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

我在本地下載了此文件,并能夠將其轉換為對象并寫入,但如果不將文件下載到本地,我不知道如何才能做到這一點。這在本地有效,但是如何將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節點映射到名為Plant.java的域對象

<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,您會發現您可以很容易地使用不在您的文件系統上的資源。任何可以獲取InputStream的內容都可能轉換為資源。
據我所知,默認使用UrlResource,后備為ClasspathResource

4.3.1。URL資源

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

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

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

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

分享到:
標簽:Batch Spring xml 創建 文件 服務 讀取
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

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

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定