【问题标题】:Spring Batch - Write multiple files based on records countSpring Batch - 根据记录数写入多个文件
【发布时间】:2015-05-07 04:47:48
【问题描述】:

在春季批处理中,我需要从数据库中读取并写入文件,文件中允许的行数为 N,因此如果获取 N+10 条记录,则应创建两个包含 N 的文件行和 10 行。

有人可以帮我实现编写器吗?还有其他简单的方法吗?谢谢。

【问题讨论】:

  • 目前正在尝试通过传递对象列表并遍历列表并创建文件来使用单独的小任务。我想知道如何通过 spring writer 本身来实现这一点..
  • 谢谢卢卡·巴索·里奇..

标签: java spring spring-batch


【解决方案1】:

春季批次有MultiResourceItemWriter,你可以根据行数编写

<bean id="multiWriter"
        class="org.springframework.batch.item.file.MultiResourceItemWriter">
        <property name="delegate" ref="flatFileItemWriter" />
        <property name="itemCountLimitPerResource" value="3" />
        <property name="resource" value="file:c:/logs/te" />
</bean>

【讨论】:

  • 对于每个文件?在上述情况下生成的文件将是 te.1、te.2 等。您可以将文件名作为弹簧属性的参数或从 SB Jobparameter 传递,