对于最新稳定版本,请使用Spring Batch Documentation 6.0.0spring-doc.cadn.net.cn

ItemStream

ItemReader物品撰稿人各自的目的都很好,但还有一个 这是双方共同的担忧,需要另一个接口。一般而言,作为 批处理工作的一部分是,读者和写者需要被打开、关闭和 需要一个持续状态的机制。这ItemStream接口正好达到了这个目的, 如下例所示:spring-doc.cadn.net.cn

public interface ItemStream {

    void open(ExecutionContext executionContext) throws ItemStreamException;

    void update(ExecutionContext executionContext) throws ItemStreamException;

    void close() throws ItemStreamException;
}

在描述每种方法之前,我们应提及执行上下文.客户ItemReader也实现了ItemStream应该打电话打开在任何呼召之前,以打开任何资源,如文件或获取连接。类似的 限制适用于ItemWriter实现ItemStream.如同所述 第二章,如果在执行上下文,它可以用来开始 这ItemReaderItemWriter地点与初始状态不同。相反关闭被召集以确保开放期间分配的资源安全释放。更新调用 的主要目的是确保当前持有的任何状态都加载到 提供的执行上下文.该方法在提交前被调用,以确保 当前状态在提交前会在数据库中持久化。spring-doc.cadn.net.cn

在当客户ItemStream(来自Spring 批处理核心),一个执行上下文为每个 StepExecution 创建,允许用户 存储特定执行的状态,期望如果 一样JobInstance又重新开始了。对于熟悉Quartz的人来说,语义学 与Quartz非常相似JobDataMap.spring-doc.cadn.net.cn