背景
我有一个 Spring Batch工作,其中:
FlatFileItemReader
- 从文件中一次读取一行ItemProcesor
- 将文件中的行转换为 aList<MyObject>
并返回List
. 也就是说,文件中的每一行都被分解为一个List<MyObject>
(文件中的 1 行转换为许多输出行)。ItemWriter
- 将 写入List<MyObject>
数据库表。(我使用这个 实现来解压从处理器和委托接收到的列表到 aJdbcBatchItemWriter
)
问题
- 在第 2 点)处理器可以返回
List
100000 个MyObject
实例。 - 在第 3 点),委托
JdbcBatchItemWriter
最终会将List
包含 100000 个对象的整个数据写入数据库。
我的问题是:JdbcBatchItemWriter
不允许自定义批量大小。出于所有实际目的,该步骤的批大小 = 提交间隔。考虑到这一点,Spring Batch中是否有另一种ItemWriter
可用的实现,它允许写入数据库并允许可配置的批量大小?如果没有,如何自己编写自定义作家来实现这一目标?