项目读取器与写入器列表
项目读取器
表 1. 可用的项目读取器
| Item Reader | 描述 | 线程安全 |
|---|---|---|
AbstractItemStreamItemReader | 结合了 ItemStream 和 ItemReader 接口的抽象基类。 | 是的 |
AbstractItemCountingItemStreamItemReader | 提供基本重启功能的抽象基类,通过统计从ItemReader返回的项目数量来实现。 | 不 |
AbstractPagingItemReader | 提供基本分页功能的抽象基类 | 否 |
AbstractPaginatedDataItemReader | 提供基于Spring Data分页功能的基本分页特性的抽象基类。 | 否 |
AggregateItemReader | 一个ItemReader,它提供一个列表作为其项,从注入的ItemReader中存储对象,直到它们准备好作为集合打包输出。此类必须用作自定义ItemReader的包装器,该自定义ItemReader能够识别记录边界。自定义读取器应通过返回一个AggregateItem来标记记录的开始和结束,该AggregateItem对其查询方法(isHeader()和isFooter())返回true。请注意,此读取器不是 Spring Batch 提供的读取器库的一部分,而是作为示例在spring-batch-samples中给出。 | 是的 |
AmqpItemReader | 给定一个Spring AmqpTemplate,它提供了同步接收方法。receiveAndConvert() 方法允许您接收POJO对象。 | 是的 |
KafkaItemReader | 一个从 Apache Kafka 主题读取消息的 ItemReader。它可以配置为从同一主题的多个分区读取消息。该读取器将消息偏移量存储在执行上下文中,以支持重启功能。 | 否 |
FlatFileItemReader | 从平面文件中读取数据。包含 ItemStream 和 Skippable 功能。请参阅“FlatFileItemReader”。 | 否 |
ItemReaderAdapter | 适配任何类到 ItemReader 接口。 | 是的 |
JdbcCursorItemReader | 从JDBC数据库游标读取数据。请参阅“基于游标的ItemReaders”。 | 否 |
JdbcPagingItemReader | 给定一个SQL语句,对行进行分页处理,以便在不耗尽内存的情况下读取大型数据集。 | 是的 |
JmsItemReader | 给定一个Spring JmsOperations对象以及一个用于发送错误的JMS目的地或目的地名称,将通过注入的JmsOperations#receive()方法接收到的条目提供出来。 | 是的 |
JpaCursorItemReader | 执行 JPQL 查询并遍历返回的结果集 | 否 |
JpaPagingItemReader | 给定一个JPQL查询,对行进行分页处理,以便在不耗尽内存的情况下读取大型数据集。 | 是的 |
ListItemReader | 提供列表中的项目,每次一个。 | 否 |
MongoPagingItemReader | 给定一个 MongoOperations 对象和一个基于 JSON 的 MongoDB 查询,提供从 MongoOperations#find() 方法接收到的项目。 | 是的 |
MongoCursorItemReader | 给定一个 MongoOperations 对象和一个基于 JSON 的 MongoDB 查询,提供从 MongoOperations#stream() 方法接收到的项目。 | 是的 |
RepositoryItemReader | 给定一个 Spring Data PagingAndSortingRepository 对象、一个 Sort 对象以及要执行的方法名称,返回由 Spring Data 仓库实现提供的条目。 | 是的 |
StoredProcedureItemReader | 从执行数据库存储过程产生的数据库游标中读取数据。请参阅StoredProcedureItemReader。 | 否 |
StaxEventItemReader | 通过 StAX 进行读取。请参阅 StaxEventItemReader。 | 否 |
JsonItemReader | 从 Json 文档中读取条目。请参阅 JsonItemReader。 | 否 |
AvroItemReader | 从包含序列化 Avro 对象的资源中读取数据项。 | 否 |
LdifReader | 从 LDIF 资源读取条目,并将其作为 LdapAttributes 返回。 | 否 |
MappingLdifReader | 从 LDIF 资源读取条目,并使用 RecordMapper 将其映射到领域对象 | 否 |
项目写入器
表 2. 可用的项目写入器
| Item Writer | 描述 | 线程安全 |
|---|---|---|
AbstractItemStreamItemWriter | 结合了 ItemStream 和 ItemWriter 接口的抽象基类。 | 是 |
AmqpItemWriter | 给定一个 Spring AmqpTemplate,提供一个同步的 send 方法。convertAndSend(Object) 方法允许你发送 POJO 对象。 | 是 |
CompositeItemWriter | 将项目传递给注入的 ItemWriter 对象 List 中每个项目的 write 方法。 | 是 |
FlatFileItemWriter | 写入到平面文件。包含 ItemStream 和可跳过功能。参见 “FlatFileItemWriter”。 | 否 |
ItemWriterAdapter | 将任何类适配到 ItemWriter 接口。 | 是 |
JdbcBatchItemWriter | 如果可用,则使用 PreparedStatement 的批处理功能,并可以采取基本步骤来定位 flush 期间的故障。 | 是 |
JmsItemWriter | 使用 JmsOperations 对象,通过 JmsOperations#convertAndSend() 方法将项目写入默认队列。 | 是 |
JpaItemWriter | 此项目写入器感知 JPA EntityManager,并处理一些与非“JPA 感知” ItemWriter 无需了解的事务相关工作,然后委托给另一个写入器执行实际写入。 | 是 |
KafkaItemWriter | 使用 KafkaTemplate 对象,通过 KafkaTemplate#sendDefault(Object, Object) 方法,使用 Converter 从项目中映射键,将项目写入默认主题。还可以配置删除标志以向主题发送删除事件。 | 否 |
MimeMessageItemWriter | 使用 Spring 的 JavaMailSender,将 MimeMessage 类型的项目作为邮件消息发送。 | 是 |
MongoItemWriter | 给定一个 MongoOperations 对象,通过 MongoOperations.save(Object) 方法写入项目。实际写入会延迟到事务提交前的最后一刻。 | 是 |
PropertyExtractingDelegatingItemWriter | 扩展 AbstractMethodInvokingDelegator,动态创建参数。参数是通过从要处理的项目中的字段(通过 SpringBeanWrapper)检索值来创建的,基于注入的字段名数组。 | 是 |
RepositoryItemWriter | 给定一个 Spring Data CrudRepository 实现,通过配置中指定的方法保存项目。 | 是 |
StaxEventItemWriter | 使用 Marshaller 实现将每个项目转换为 XML,然后使用 StAX 将其写入 XML 文件。 | 否 |
JsonFileItemWriter | 使用 JsonObjectMarshaller 实现将每个项目转换为 Json,然后将其写入 Json 文件。 | 否 |
AvroItemWriter | 使用 Avro 将数据序列化到 WritableResource。 | 否 |
ListItemWriter | 将项目写入 List 的项目写入器。 | 否 |