ItemReader和ItemWriter列表

Item Reader

表 1. 可用的 Item Reader
Item Reader 说明 线程安全

AbstractItemStreamItemReader

组合了ItemStreamItemReader接口的抽象基类。

AbstractItemCountingItemStreamItemReader

通过计算从 ItemReader 返回的项目数,提供基本重启功能的抽象基类。

AbstractPagingItemReader

提供基本分页功能的抽象基类

AbstractPaginatedDataItemReader

基于 Spring Data 的分页功能提供基本分页功能的抽象基类

AggregateItemReader

将列表作为其项目提供的 ItemReader,存储来自注入的 ItemReader 的对象,直到它们准备好打包为集合。此类必须用作自定义 ItemReader 的包装器,该包装器可以识别记录边界。自定义读取器应通过返回对查询方法(isHeader()isFooter())响应 trueAggregateItem 来标记记录的开始和结束。请注意,此读取器不属于 Spring Batch 提供的读取器库,而是作为 spring-batch-samples 中的示例提供。

AmqpItemReader

给定 Spring AmqpTemplate,它提供同步接收方法。receiveAndConvert() 方法允许您接收 POJO 对象。

KafkaItemReader

从 Apache Kafka 主题读取消息的 ItemReader。可以将其配置为从同一主题的多个分区读取消息。此读取器将消息偏移量存储在执行上下文中,以支持重启功能。

FlatFileItemReader

从平面文件中读取。包括 ItemStreamSkippable 功能。请参阅 “FlatFileItemReader”

HibernateCursorItemReader

从基于 HQL 查询的游标中读取。请参阅 基于游标的 ItemReaders

HibernatePagingItemReader

从分页的 HQL 查询中读取。

ItemReaderAdapter

将任何类适配到 ItemReader 接口。

JdbcCursorItemReader

从 JDBC 上的数据库游标中读取。请参阅 “基于游标的 ItemReaders”

JdbcPagingItemReader

给定一个 SQL 语句,对行进行分页,以便在不耗尽内存的情况下读取大型数据集。

JmsItemReader

给定一个 Spring JmsOperations 对象和一个 JMS 目标或目标名称以发送错误,提供通过注入的 JmsOperations#receive() 方法接收的项目。

JpaCursorItemReader

执行 JPQL 查询并迭代返回的结果集

JpaPagingItemReader

给定一个 JPQL 查询,对行进行分页,以便在内存不足的情况下读取大型数据集。

ListItemReader

一次提供一个列表中的项。

MongoItemReader

给定一个 MongoOperations 对象和一个基于 JSON 的 MongoDB 查询,提供从 MongoOperations#find() 方法接收的项。

Neo4jItemReader

给定一个 Neo4jOperations 对象和 Cyhper 查询的组件,项作为 Neo4jOperations.query 方法的结果返回。

RepositoryItemReader

给定一个 Spring Data PagingAndSortingRepository 对象、一个 Sort 和要执行的方法的名称,返回 Spring Data 存储库实现提供的项。

StoredProcedureItemReader

从数据库存储过程执行产生的数据库游标中读取。请参阅 StoredProcedureItemReader

StaxEventItemReader

读取 StAX。请参阅 StaxEventItemReader

JsonItemReader

从 Json 文档读取项。请参阅 JsonItemReader

AvroItemReader

从包含序列化 Avro 对象的资源中读取项。

LdifReader

从 LDIF 资源中读取项,并将其作为 LdapAttributes 返回

MappingLdifReader

从 LDIF 资源中读取项,并使用 RecordMapper 将其映射到域对象

项写入器

表 2. 可用的项写入器
项写入器 说明 线程安全

AbstractItemStreamItemWriter

组合`ItemStream`和`ItemWriter`接口的抽象基类。

AmqpItemWriter

给定一个 Spring AmqpTemplate,提供一个同步 send 方法。convertAndSend(Object) 方法允许您发送 POJO 对象。

CompositeItemWriter

将项传递给注入的 ItemWriter 对象 List 中每个项的 write 方法。

FlatFileItemWriter

写入平面文件。包括 ItemStream 和可跳过功能。请参阅 “FlatFileItemWriter”

HibernateItemWriter

此项写入器支持 Hibernate 会话,并处理一些事务相关的工作,而非“支持 hibernate”项写入器不需要了解这些工作,然后委托给另一个项写入器来执行实际写入操作。

ItemWriterAdapter

将任何类适配到 ItemWriter 接口。

JdbcBatchItemWriter

如果可用,使用来自PreparedStatement的批处理功能,并且可以在flush期间采取基本步骤来找到故障。

JmsItemWriter

使用JmsOperations对象,通过JmsOperations#convertAndSend()方法将项目写入默认队列。

JpaItemWriter

此项目编写器是 JPA EntityManager 感知的,并且处理一些事务相关的工作,而非“JPA 感知”ItemWriter不需要了解,然后委托给另一个编写器执行实际写入。

KafkaItemWriter

使用KafkaTemplate对象,通过使用Converter从项目映射键,通过KafkaTemplate#sendDefault(Object, Object)方法将项目写入默认主题。还可以配置删除标志以将删除事件发送到主题。

MimeMessageItemWriter

使用 Spring 的JavaMailSender,类型为MimeMessage的项目作为邮件消息发送。

MongoItemWriter

给定MongoOperations对象,通过MongoOperations.save(Object)方法写入项目。实际写入会延迟到事务提交前的最后可能时刻。

Neo4jItemWriter

给定Neo4jOperations对象,通过save(Object)方法保留项目或通过delete(Object)删除项目,如ItemWriter的配置所指示。

PropertyExtractingDelegatingItemWriter

扩展AbstractMethodInvokingDelegator,动态创建参数。基于注入的字段名数组,通过从待处理项目中的字段中检索值(通过SpringBeanWrapper)来创建参数。

RepositoryItemWriter

给定 Spring Data CrudRepository实现,通过配置中指定的方法保存项目。

StaxEventItemWriter

使用Marshaller实现将每个项目转换为 XML,然后使用 StAX 将其写入 XML 文件。

JsonFileItemWriter

使用JsonObjectMarshaller实现将每个项目转换为 Json,然后将其写入 Json 文件。

AvroItemWriter

使用 Avro 将数据序列化到WritableResource

ListItemWriter

将项目写入List的项目编写器。