## 附录 A:条目阅读器和条目编写器列表 ### 条目阅读器 | Item Reader |说明| |----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |AbstractItemCountingItemStreamItemReader|抽象基类,通过计算从
和`ItemReader`返回的项数,提供基本的
重启功能。| | AggregateItemReader |一个`ItemReader`提供一个列表作为其
项,存储来自注入的`ItemReader`的对象,直到它们
准备好作为集合打包。必须将这个类
用作自定义`ItemReader`的包装器,该包装器可以标识记录
的边界。自定义读取器应该通过返回一个`AggregateItem`来标记
记录的开始和结束,它将对其`true`查询方法
和`isFooter()`进行响应。请注意,这个阅读器
不是 Spring 批
提供的阅读器库的一部分,而是作为`spring-batch-samples`中的示例给出的。| | AmqpItemReader |给定一个 Spring `AmqpTemplate`,它提供了
同步接收方法。`receiveAndConvert()`方法
允许你接收 POJO 对象。| | KafkaItemReader |从 Apache Kafka 主题读取消息的`ItemReader`。
可以将其配置为从同一主题的多个分区读取消息。
此阅读器在执行上下文中存储消息偏移量,以支持重新启动功能。| | FlatFileItemReader |从平面文件读取。包括`ItemStream`和`Skippable`功能。参见[`FlatFileItemReader`]。| | HibernateCursorItemReader |基于 HQL 查询从游标读取。参见[`Cursor-based ItemReaders`]。| | HibernatePagingItemReader |从分页的 HQL 查询中读取| | ItemReaderAdapter |将任何类调整为`ItemReader`接口。| | JdbcCursorItemReader |通过 JDBC 从数据库游标读取数据。参见[`Cursor-based ItemReaders`]。| | JdbcPagingItemReader |给定一个 SQL 语句,在行中进行分页
,这样就可以在不耗尽
内存的情况下读取大型数据集。| | JmsItemReader |给定一个 Spring `JmsOperations`对象和一个 JMS
向其发送错误的目的地或目的地名称,提供通过注入的项
接收到的`JmsOperations#receive()`方法。| | JpaPagingItemReader |给定一个 JPQL 语句,通过
行进行分页,这样就可以在不耗尽
内存的情况下读取大型数据集。| | ListItemReader |提供列表中的项,在
时间提供一个列表。| | MongoItemReader |给定一个`MongoOperations`对象和一个基于 JSON 的 MongoDB
查询,提供从`MongoOperations#find()`方法接收的项。| | Neo4jItemReader |给定一个`Neo4jOperations`对象和一个
Cyhper 查询的组件,返回的项是 NEO4jOperations.query
方法的结果。| | RepositoryItemReader |给定一个 Spring data`PagingAndSortingRepository`对象,
a`Sort`,以及要执行的方法的名称,返回由
Spring 数据存储库实现的项。| | StoredProcedureItemReader |从执行数据库存储过程的
所产生的数据库游标读取数据。参见[`StoredProcedureItemReader`]| | StaxEventItemReader |通过 stax 进行读取,参见[`StaxEventItemReader`]。| | JsonItemReader |从 JSON 文档中读取项目。参见[`JsonItemReader`]。| ### 条目编写者 | Item Writer |说明| |--------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | AbstractItemStreamItemWriter |组合`ItemStream`和`ItemWriter`接口的抽象基类。| | AmqpItemWriter |给定 Spring `AmqpTemplate`,它为同步`send`方法提供了
。`convertAndSend(Object)`方法允许你发送 POJO 对象。| | CompositeItemWriter |在注入`List`的`ItemWriter`对象中,将一个项传递给每个
的`write`方法。| | FlatFileItemWriter |写入平面文件。包括`ItemStream`和
可跳过的功能。参见[`FlatFileItemWriter`]。| | GemfireItemWriter |使用`GemfireOperations`对象,可以根据 delete
标志的配置从 Gemfire 实例中写入
项。| | HibernateItemWriter |这个条目编写器 Hibernate-会话知道
,并处理一些与事务相关的工作,而非“ Hibernate-知道”
的条目编写器不需要了解这些工作,然后将
委托给另一个条目编写器来进行实际的写作。| | ItemWriterAdapter |将任何类调整为`ItemWriter`接口。| | JdbcBatchItemWriter |使用来自`PreparedStatement`(如果可用)的批处理功能,并且可以
在`flush`期间采取基本步骤来定位故障。| | JmsItemWriter |使用`JmsOperations`对象,通过`JmsOperations#convertAndSend()`方法将项
写入默认队列。| | JpaItemWriter |这个条目编写器是 JPA EntityManager-aware 的
,并处理一些与事务相关的工作,而非“ JPA-aware”`ItemWriter`不需要了解这些工作,并且
然后将其委托给另一个编写器来进行实际的编写。| | KafkaItemWriter |使用`KafkaTemplate`对象,通过`KafkaTemplate#sendDefault(Object, Object)`方法将项写入默认主题,并使用`Converter`来映射该项的键。
还可以配置一个 delete 标志,以将 delete 事件发送到该主题。| | MimeMessageItemWriter |使用 Spring 的`JavaMailSender`,类型`MimeMessage`的项作为邮件发送。| | MongoItemWriter |给定一个`MongoOperations`对象,通过`MongoOperations.save(Object)`方法写项目
。实际的写入被延迟
,直到事务提交之前的最后一个可能时刻。| | Neo4jItemWriter |给定一个`Neo4jOperations`对象,项目将通过`save(Object)`方法持久化,或者根据`ItemWriter’s`配置通过`delete(Object)`方法删除。| |PropertyExtractingDelegatingItemWriter|扩展`AbstractMethodInvokingDelegator`动态创建参数。参数是通过从要处理的项中的字段(通过`SpringBeanWrapper`)检索
中的值来创建的,基于注入的字段
名称数组。| | RepositoryItemWriter |给定一个 Spring 数据`CrudRepository`的实现,
项是通过在配置中指定的方法保存的。| | StaxEventItemWriter |使用`Marshaller`实现
将每个项转换为 XML,然后使用
stax 将其写入 XML 文件。| |jsonfileitemwriter| 使用`JsonObjectMarshaller`实现将每个项转换为 JSON,然后将其写入 JSON 文件。