如何使用我的自定义ItemReader - Spring Batch

时间:2016-08-09 14:55:58

标签: spring-batch

我已经实现了自己的ItemStreamReader以使其成为Synchronized。但是,我不知道如何在我的step中使用它。

SynchronizedItemReader<T> implements ItemStreamReader<T> 

这是我的自定义课程。我对该步骤的XML配置如下

    <bean id="xmlItemReaderStep2" class="org.springframework.batch.item.xml.StaxEventItemReader">
    <property name="resource" value="classpath:report.xml" />
    <property name="fragmentRootElementName" value="class" />
    <property name="unmarshaller">
        <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
            <property name="classesToBeBound">
                <list>
                    <value>com.model.ClassNode</value>
                </list>
            </property>
        </bean>
    </property>
</bean>

如何在步骤中使用我的SynchronizedItemReader<T>

下面的作业配置

        <batch:step id="step2" next="step3">
        <batch:tasklet transaction-manager="transactionManager">
            <batch:chunk reader="xmlItemReaderStep2" writer="testResultsWriter"
                processor="itemProcessor2" commit-interval="500" />
            <batch:listeners>
            <batch:listener ref="promotionListener" />
                <batch:listener ref="jobListener3" />
            </batch:listeners>
        </batch:tasklet>
    </batch:step>

1 个答案:

答案 0 :(得分:0)

在项目阅读器的xml配置中配置名为itemStreamReader的bean,并在步骤中以这种方式进行配置:

 <batch:step id="step2" next="step3">
        <batch:tasklet transaction-manager="transactionManager">
            <batch:chunk reader="itemStreamReader" writer="testResultsWriter"
                processor="itemProcessor2" commit-interval="500" />
            <batch:listeners>
            <batch:listener ref="promotionListener" />
                <batch:listener ref="jobListener3" />
            </batch:listeners>
        </batch:tasklet>
    </batch:step>