附录 A.ItemReader 和 ItemWriter 的列表

A.1ItemReader

表 A.1.可用 ItemReader

Item ReaderDescription
AbstractItemCountingItemStreamItemReader通过计算从ItemReader返回的 Item 数提供基本重新启动功能的抽象 Base Class。
AggregateItemReader一个 ItemReader,将一个列表作为其 Item 传递,从注入的 ItemReader 中存储对象,直到准备好将它们打包为一个集合为止。此 ItemReader 应该使用 FieldSetMapper AggregateItemReader# BEGIN_RECORD 和 AggregateItemReader# END_RECORD 中的常量值标记记录的开始和结束。
AmqpItemReader给定一个 Spring AmqpTemplate,它提供了同步接收方法。 receiveAndConvert()方法使您可以接收 POJO 对象。
FlatFileItemReader从平面文件读取。包括 ItemStream 和 Skipable 功能。请参阅“从文件读取”部分
HibernateCursorItemReader基于 HQL 查询从游标读取。请参阅有关从数据库读取的部分
HibernatePagingItemReader从分页的 HQL 查询中读取
IbatisPagingItemReader通过 iBATIS 根据查询进行读取。通过行的页面,以便可以在不耗尽内存的情况下读取大型数据集。请参阅 HOWTO-从数据库读取。从 Spring Batch 3.0 开始不推荐使用此 ItemReader。
ItemReaderAdapter使任何类适应ItemReader接口。
JdbcCursorItemReader通过 JDBC 从数据库游标中读取。请参阅 HOWTO-从数据库读取
JdbcPagingItemReader给定一条 SQL 语句,可以在行中进行分页,这样就可以读取大型数据集而不会耗尽内存
JmsItemReader给定一个 Spring JmsOperations 对象和一个 JMS 目标或目标名称来发送错误,它提供通过注入的 JmsOperations receive()方法接收的 Item
JpaPagingItemReader给定一个 JPQL 语句,可以在各行之间进行分页,从而可以读取大型数据集而不会耗尽内存
ListItemReader提供列表中的 Item,一次提供一个
MongoItemReader给定 MongoOperations 对象和基于 JSON 的 MongoDB 查询,可以提供从 MongoOperations 查找方法接收的项
Neo4jItemReader给定 Neo4jOperations 对象和 Cyhper 查询的组件,作为 Neo4jOperations.query 方法的结果返回项
RepositoryItemReader给定一个 Spring Data PagingAndSortingRepository 对象,一个 Sort 和要执行的方法的名称,返回 Spring Data 存储库实现提供的 Item
StoredProcedureItemReader从数据库游标读取,该游标是由于执行数据库存储过程而产生的。请参阅 HOWTO-从数据库读取
StaxEventItemReader通过 StAX 读取。请参阅 HOWTO-从文件读取

A.2ItemWriter

表 A.2.可用的 ItemWriter

Item WriterDescription
AbstractItemStreamItemWriter结合了ItemStreamItemWriter接口的抽象 Base Class。
AmqpItemWriter给定一个 Spring AmqpTemplate,它提供了同步发送方法。 convertAndSend(Object)方法使您可以发送 POJO 对象。
CompositeItemWriter将 Item 传递给注入的 ItemWriter 对象的 List 列表中每个对象的处理方法
FlatFileItemWriter写入平面文件。包括 ItemStream 和 Skipable 功能。请参阅“写入文件”部分
GemfireItemWriter使用 GemfireOperations 对象,可以根据删除标志的配置从 Gemfire 实例写入或删除 Item
HibernateItemWriter该 ItemWriter 是休眠会话感知的,并处理一些与事务相关的工作,这些事务是非“休眠意识”ItemWriter 不需要知道的,然后委托另一个 ItemWriter 进行实际的编写。
IbatisBatchItemWriter直接使用 iBatis API 批量写入 Item。从 Spring Batch 3.0 开始不推荐使用此 ItemWriter。
ItemWriterAdapter使任何类适应ItemWriter接口。
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的配置,Item 通过 save(Object)方法保留,或通过 delete(Object)删除
PropertyExtractingDelegatingItemWriter扩展了动态创建参数的 AbstractMethodInvokingDelegator。通过基于注入的字段名称数组从要处理的 Item 中的字段(通过 SpringBeanWrapper)中检索值来创建参数
RepositoryItemWriter给定一个 Spring Data CrudRepository 实现,通过配置中指定的方法保存 Item。
StaxEventItemWriter使用 ObjectToXmlSerializer 实现将每个 Item 转换为 XML,然后使用 StAX 将其写入 XML 文件。