写入文件和审计表

时间:2013-12-09 20:42:30

标签: spring-batch

我正在尝试将Springbatch用于必须写入文件的批处理作业(步骤1),并将数据(在文件中发送)写入审计表。(步骤2)

除了将步骤1的输出文件作为步骤2的输入写入DB之外,还有更好的方法吗?

数据无法在Exceution Context中传递,因为它很大。

感谢。

1 个答案:

答案 0 :(得分:2)

是的,使用CompositeItemWriter 从它的javadoc

  

按固定顺序调用ItemWriters集合。

只需创建一个CompositeItemWriter传递代理(您的真实编写者:一个用于文件,一个用于审计表)并将它们注册为流以允许重新启动。

<bean id="fileWriter" class="path.to.filewriterClass" />
<bean id="auditTableWriter" class="path.to.auditawriterClass" />
<bean id="compositeWriter" class="path.to.CompositeItemWriter>
  <property name="delegates">
    <list>
    <bean ref="fileWriter" />
    <bean ref="auditTableWriter />
  </property>
</bean>
<step name="step1">
  <tasklet>
    <chunk reader="path.to.readerClass" writer="compositeWriter" />
      <streams>
        <stream ref="fileWriter" />
        <stream ref="auditTableWriter" />
      </streams>
  </tasklet>
</step>

有关其他信息,请参阅official doc,并查看大量示例!