跳到主要内容
版本:6.0.2

项目读取器与写入器列表

DeepSeek V3 中英对照 List of ItemReaders and ItemWriters

项目读取器

表 1. 可用的项目读取器

Item Reader描述线程安全
AbstractItemStreamItemReader结合了 ItemStreamItemReader 接口的抽象基类。是的
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从平面文件中读取数据。包含 ItemStreamSkippable 功能。请参阅“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结合了 ItemStreamItemWriter 接口的抽象基类。
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 的项目写入器。