我们先来给ItemReader下一个定义:一个提供从不同数据源获取数据的组件,数据源包括 XML,File,Database 等。
作为一个 Spring Batch 重要的组件,Spring Batch 提供了一个接口,所有的 ItemReader 都需要实现这个接口,当然 Spring Batch 也提供了非常丰富的是实现来对应的读取各种数据源的数据。接口定义如下:
public interface ItemReader<T> { @Nullable T read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException; }
提供的默认实现有33个之多,基本涵盖所有的数据源读取类型。
?
下边我们就来详细的介绍一下各个 Reader的实现:
上边罗列了系统中默认实现的 ItemReader ,已经基本可以满足我们普通分业务需要,同时如果我们有复杂的需求上边的默认实现不能覆盖,Spring Batch 提供了ItemReader/ItemStreamReader 等接口,还提供了几个抽象类可以继承。后边章节我们会提供读取 Flat 文件,读取数据库,读取 XML,读取 JSON 等四个具体的例子来介绍 ItemReader 的用法,同时还会提供一个实现 接口的例子来帮助我们理解 ItemReader的用法。