以春季批量附加数据

时间:2014-10-17 16:03:10

标签: xml jaxb spring-batch

我想知道如何指定我希望第二个作业附加的数据输出到第一个作业的数据输出:

job1 ---> 数据1 --->输出XML文件

job2 ---> 数据2 ---> SAME输出XML文件

但是当我打开输出XML时,我只找到 data 2

我想找到这个:


输出文件


DATA1

DATA2

如何在春季批次中配置此功能。谢谢

2 个答案:

答案 0 :(得分:1)

我认为您正在使用StaxEventItemWriter。有一个属性overwriteOutput设置为true。如果此值设置为true,则它将覆盖文件(如果存在)。将其设置为false,它将附加到现有文件(重新启动时将忽略此标志)。您可以在javadoc中阅读有关此标志的更多信息:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/xml/StaxEventItemWriter.html#setOverwriteOutput-boolean-

答案 1 :(得分:0)

我想分享配置以供参考。

<bean id="xmlItemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter">
        <property name="resource" value="file:outputs/test.xml" />
        <property name="encoding" value="ISO-8859-1" />
        <property name="version" value="1.0" />
        <property name="marshaller" ref="reportMarshaller" />
        <property name="rootTagName" value="record" />

        <!-- TRUE means, that output file will be overwritten if exists - default is TRUE -->
        <property name="overwriteOutput" value="true" />
    </bean>

如果设置<property name="overwriteOutput" value="false" />,那么如果test.xml目录中已存在outputs,则在重新启动作业时会出现错误。如果未重新启动作业,则它将附加到XML文件。