Spring batch 数据库支持的Spring批处理执行状态

Spring batch 数据库支持的Spring批处理执行状态,spring-batch,spring-jdbc,Spring Batch,Spring Jdbc,从: 对于初学者来说,@EnableBatchProcessing注释添加了许多关键的 支持工作并为您节省大量腿部工作的bean。这个例子 使用基于内存的数据库(由@EnableBatchProcessing提供), 这意味着当它完成时,数据就消失了 如何使执行状态由数据库(或其他持久记录)支持,以便在应用程序崩溃的情况下,从以前的状态恢复作业 到目前为止,我的解决方案是让我的ItemReader成为一个JdbcCursorItemReader,它从列X不是NULL的表中读取记录,而我的Item

从:

对于初学者来说,@EnableBatchProcessing注释添加了许多关键的 支持工作并为您节省大量腿部工作的bean。这个例子 使用基于内存的数据库(由@EnableBatchProcessing提供), 这意味着当它完成时,数据就消失了

如何使执行状态由数据库(或其他持久记录)支持,以便在应用程序崩溃的情况下,从以前的状态恢复作业


到目前为止,我的解决方案是让我的
ItemReader
成为一个
JdbcCursorItemReader
,它从列
X
不是
NULL
的表中读取记录,而我的
ItemWriter
成为一个
jdbccbatchitemreater
,它使用列
X
上的数据更新记录,使其非NULL(以便下次执行时不会拾取)。然而,这似乎真的很有黑客味,我相信还有一种更优雅的方式。有人能解释一下吗?

当使用
@EnableBatchProcessing
注释时,如果您提供一个名为
DataSource
数据源定义,Spring Batch将把该数据库用于作业存储库,而不是e内存映射。您可以在以下文档中阅读有关此功能的更多信息: