附录 A:ItemReader 和 ItemWriters 的列表

A.1.itemReader

表 1.可用 ItemReader

Item ReaderDescription
AbstractItemCountingItemStreamItemReader通过计算从ItemReader返回的 Item 数提供基本重新启动功能的抽象 Base Class。
AggregateItemReader一个ItemReader作为其 Item 传递列表,存储注入的ItemReader中的对象,直到准备好将它们打包为一个集合为止。此类必须用作可标识记录边界的自定义ItemReader的包装。定制 Reader 应通过返回AggregateItem来标记记录的开头和结尾,该AggregateItem对其查询方法isHeader()isFooter()做出响应true。请注意,该 Reader 不是 Spring Batch 提供的 Reader 库的一部分,而是作为spring-batch-samples中的示例给出的。
AmqpItemReader给定 Spring AmqpTemplate,它提供了同步接收方法。 receiveAndConvert()方法可让您接收 POJO 对象。
FlatFileItemReader从平面文件读取。包括ItemStreamSkippable功能。参见FlatFileItemReader
HibernateCursorItemReader基于 HQL 查询从游标读取。参见Cursor-based ItemReaders
HibernatePagingItemReader从分页的 HQL 查询中读取
ItemReaderAdapter使任何类适应ItemReader接口。
JdbcCursorItemReader通过 JDBC 从数据库游标中读取。参见Cursor-based ItemReaders
JdbcPagingItemReader给定一条 SQL 语句,可以在行中进行分页,从而可以读取大型数据集而不会耗尽内存。
JmsItemReader给定 Spring JmsOperations对象和向其发送错误的 JMS 目标或目标名称,将提供通过注入的JmsOperations#receive()方法接收的 Item。
JpaPagingItemReader给定一个 JPQL 语句,可以在行中进行分页,这样就可以读取大型数据集而不会耗尽内存。
ListItemReader一次提供一个列表中的 Item。
MongoItemReader给定一个MongoOperations对象和一个基于 JSON 的 MongoDB 查询,它提供了从MongoOperations#find()方法接收的 Item。
Neo4jItemReader给定一个Neo4jOperations对象和 Cyhper 查询的组件,则作为 Neo4jOperations.query 方法的结果返回项。
RepositoryItemReader给定一个 Spring Data PagingAndSortingRepository对象,一个Sort以及要执行的方法的名称,将返回 Spring Data 存储库实现提供的 Item。
StoredProcedureItemReader从数据库游标读取,该游标是由于执行数据库存储过程而产生的。见StoredProcedureItemReader
StaxEventItemReader通过 StAX 读取。参见StaxEventItemReader
JsonItemReader从 Json 文档中读取 Item。参见JsonItemReader

A.2.ItemWriter

表 2.可用 ItemWriter

Item WriterDescription
AbstractItemStreamItemWriter结合了ItemStreamItemWriter接口的抽象 Base Class。
AmqpItemWriter给定 Spring AmqpTemplate,它提供了同步send方法。 convertAndSend(Object)方法使您可以发送 POJO 对象。
CompositeItemWriter将一个 Item 传递给ItemWriter个对象的已注入List个对象中的每个对象的write方法。
FlatFileItemWriter写入平面文件。包括ItemStream和可跳过功能。参见FlatFileItemWriter
GemfireItemWriter使用GemfireOperations对象,可以根据删除标志的配置将 Item 写入 Gemfire 实例或从 Gemfire 实例中删除。
HibernateItemWriter该 Item 编写器具有 Hibernate 会话意识,并处理与事务无关的工作,非“了解 Hibernate 的”Item 编写器将不需要了解这些事务,然后委托其他 Item 编写器进行实际编写。
ItemWriterAdapter使任何类适应ItemReader接口。
JdbcBatchItemWriter使用PreparedStatement中的批处理功能(如果有),并且可以采取基本步骤来确定flush期间的故障。
JmsItemWriter使用JmsOperations对象,可以通过JmsOperations#convertAndSend()方法将 Item 写入默认队列。
JpaItemWriter此 ItemWriter 支持 JPA EntityManager,并处理非“ JPA 知道” ItemWriter不需要了解的与事务相关的工作,然后委托其他 Writer 进行实际编写。
MimeMessageItemWriter使用 Spring 的JavaMailSender,将类型MimeMessage的 Item 作为邮件发送。
MongoItemWriter给定一个MongoOperations对象,将通过MongoOperations.save(Object)方法写入 Item。实际写入将延迟到事务提交之前的最后一个可能 Moment。
Neo4jItemWriter给定Neo4jOperations对象,根据ItemWriter's配置,Item 将通过save(Object)方法保留,或通过delete(Object)删除
PropertyExtractingDelegatingItemWriter即时扩展AbstractMethodInvokingDelegator创建参数。根据注入的字段名称数组,通过从要处理的 Item 中的字段(通过SpringBeanWrapper)检索值来创建参数。
RepositoryItemWriter给定一个 Spring Data CrudRepository实现,通过配置中指定的方法保存 Item。
StaxEventItemWriter使用Marshaller实现将每个 Item 转换为 XML,然后使用 StAX 将其写入 XML 文件。
JsonFileItemWriter使用JsonObjectMarshaller实现将每个 Item 转换为 Json,然后将其写入 Json 文件。