ItemReaders 和 ItemWriters 列表

Item Readers

表 1. 可用的 Item Readers
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将其映射到域对象

Item Writers

表 2. 可用的 Item Writers
Item Writer 描述 线程安全

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

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的项目写入器。