如果 reader returns 没有项目,Spring 的 MultiResourceItemWriter 不会调用页眉和页脚回调

Spring's MultiResourceItemWriter is not calling header and footer callback if reader returns no item

我有一个从数据库读取并创建输出文件的作业。 我正在使用 MultiResourceItemWriter,因此如果文件中的记录数超过某个阈值则滚动文件。 我需要生成带有(页眉和页脚)的空文件,即使 reader 未获取任何数据。

即使委托的 FlatFileItemWriterBuilder 正在侦听页眉和页脚回调,如果 reader 未获取任何数据,作业也不会创建文件。

谢谢

正如其 Javadoc 中所指定的那样,这就是编写器的设计工作方式:

Note that new resources are created only at chunk boundaries

这意味着如果 reader 没有返回任何项目,则不会创建输出资源。如果您想自定义此行为,您可以扩展该编写器或根据您的需要创建一个自定义编写器。