对于初学者来说,@ EnableBatchProcessing注释添加了许多关键 豆类支持工作,为您节省大量的工作。这个例子 使用基于内存的数据库(由@EnableBatchProcessing提供), 这意味着当它完成时,数据就消失了。
如何使数据库(或其他持久性记录)支持执行状态,以便在应用程序崩溃时,作业从之前的状态恢复?
到目前为止,我的解决方案是让我的ItemReader
成为JdbcCursorItemReader
,从表中读取记录的列X
不是NULL
,我的ItemWriter
是JdbcBatchItemWriter
,其中使用列X
上的数据更新记录,使其成为非空(以便赢得'在下次执行时被选中)。然而,这似乎真的很黑,我相信这是一种更优雅的方式。谁能请一些亮点?
答案 0 :(得分:0)
使用@EnableBatchProcessing
注释时,如果提供名为DataSource
的{{1}} bean定义,则Spring Batch将使用该数据库作为作业存储库存储而不是内存映射。您可以在此处的文档中详细了解此功能:http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/configuration/annotation/EnableBatchProcessing.html