Spring Batch之读数据—ItemReader和ItemStream(二十三)

一、ItemReader

        ItemReader是Step中对资源的读处理,Spring Batch框架已经提供了各种类型的读实现,包括对文本文件、XML文件、数据库、JMS消息等读的处理。

所有的读操作需要实现org.springframework.batch.item.ItemReader接口。

public interface ItemReader {
    T read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException;
}
  • read():负责从给定的资源中读取可用的数据

二、ItemStream

        Spring Batch框架同时提供了另外一个重要的接口org.springframework.batch.item.ItemStream。ItemStream接口定义了读操作与执行上下文ExecutionContext交互的能力。可以将已经读的条数通过该接口存放在执行上下文ExecutionContext中(ExecutionContext中的数据在批处理commit的时候会通过JopRepository持久化到数据库中),这样到Job发生异常重新启动Job的时候,读操作可以跳过已经成功读过的数据,继续从上次出错的地点(可以从执行上下文中获取上次成功读的位置)开始读。

public interface ItemStream {
    void open(ExecutionContext var1) throws ItemStreamException;

    void update(ExecutionContext var1) throws ItemStreamException;

    void close() throws ItemStreamException;
}
  • open():open()操作根据参数executionContext打开需要读取资源的stream;可以根据持久化在执行上下文executionContext中的数据重新定位需要读取记录的位置
  • update():将需要持久化的数据存放在执行上下文executionContext中
  • close():关闭读取的资源

    说明:Spring Batch框架提供的读组件均实现了ItemStream接口。

你可能感兴趣的:(Spring,Batch,spring,batch,java)