附录A ItemReader 与 ItemWriter 列表
A.1 Item Readers
Table A.1. 所有可用的Item Reader列表
Item Reader | 说明 |
---|---|
AbstractItemCountingItemStreamItemReader | 抽象基类,支持重启,通过统计(counting)从 ItemReader 返回对象的数量来实现. |
AggregateItemReader | 此 ItemReader 提供一个 list , 用来存储 ItemReader 读取的对象, 直到他们已准备装配为一个集合。 此 ItemReader 通过 FieldSetMapper 的常量值 AggregateItemReader#BEGIN_RECORD 以及 AggregateItemReader#END_RECORD 来标记记录的开始与结束。 |
AmqpItemReader | 给定一个提供同步获取方法( synchronous receive methods)的 Spring AmqpTemplate. 使用 receiveAndConvert() 方法可以得到 POJO 对象. |
FlatFileItemReader | 从平面文件(flat file)中读取数据,支持 ItemStream 以及 Skippable 特性. 请参考 Read from a File 一节 |
HibernateCursorItemReader | 从基于 HQL 查询的 cursor 中读取数据。 请参考 Reading from a Database 一节。 |
HibernatePagingItemReader | 从分页(paginated)的HQL查询中读取数据 |
IbatisPagingItemReader | 通过 iBATIS 的分页查询读取数据,对于大型数据集,分页能避免内存不足/溢出的问题. 请参考: HOWTO - Read from a Database. 这个 ItemReader 在 Spring Batch 3.0 中已废弃. |
ItemReaderAdapter | 将任意类适配到 接口. |
JdbcCursorItemReader | 通过 JDBC 从 一个 database cursor 中读取数据. 请参考: HOWTO - Read from a Database |
JdbcPagingItemReader | 给定一个 SQL statement, 通过分页查询读取数据,避免读取大型数据集时 内存不足/溢出的问题 |
JmsItemReader | 给一个 Spring JmsOperations 对象和一个 JMS Destination 对象/也可以是用来发送错误的 destination name , 调用注入的 JmsOperations 里面的 receive() 方法来获取对象 |
JpaPagingItemReader | 给定一个 JPQL statement, 通过分页查询读取数据,避免读取大型数据集时 内存不足/溢出的问题 |
ListItemReader | 从 list 中读取数据,一次返回一条 |
MongoItemReader | 给定一个 MongoOperations 对象,以及从 MongoDB 中查询数据所使用的JSON, 通过 MongoOperations 的 find 方法来获取数据 |
Neo4jItemReader | 给定一个 Neo4jOperations 对象,以及一个 Cyhper query 所需的 components, 将 Neo4jOperations.query 方法的结果返回 |
RepositoryItemReader | 给定一个 Spring Data PagingAndSortingRepository 对象, 一个 Sort 对象,以及要执行的 method name, 返回 Spring Data repository 实现提供的数据 |
StoredProcedureItemReader | 执行存储过程(database stored procedure),从返回的 database cursor 中读取数据. 请参考: HOWTO - Read from a Database |
StaxEventItemReader | 通过 StAX 读取. 请参考 HOWTO - Read from a File |
A.2 Item Writers
Table A.2. 所有可用的 Item Writer 列表
Item Writer | 说明 |
---|---|
AbstractItemStreamItemWriter | 抽象基类, 组合了 和 接口。 |
AmqpItemWriter | 给定一个提供同步发送方法的 Spring AmqpTemplate. 使用convertAndSend(Object) 方法可以输出 POJO 对象. |
CompositeItemWriter | 将注入的 List 里面每一个元素都传给 ItemWriter 的处理方法 |
FlatFileItemWriter | 写入平面文件(flat file). 支持 ItemStream 以及 Skippable 特性. 请参考 Writing to a File 一节 |
GemfireItemWriter | 使用 GemfireOperations 对象, 根据配置的 delete 标志,对 items 进行写入或者删除 |
HibernateItemWriter | 这个 item writer 是Hibernate会话相关的(hibernate session aware), 用来处理非 hibernate 相关的组件(non-“hibernate aware” )不需要关心的事务性工作, 并且委托另一个 item writer 来执行实际的写入工作. |
IbatisBatchItemWriter | 在批处理中直接使用 iBatis 的 API. 这个 ItemWriter 在 Spring Batch 3.0 中已废弃. |
ItemWriterAdapter | 将任意类适配到 接口. |
JdbcBatchItemWriter | 尽可能地利用 的批处理功能(batching features), 还可以采取基本的步骤来定位 失败等问题。 |
JmsItemWriter | 利用 JmsOperations 对象, 通过 JmsOperations.convertAndSend() 方法将 items 写入到默认队列( default queue) |
JpaItemWriter | 这个 item writer 是 JPA EntityManager aware 的, 用来处理非jpa相关的(non-“jpa aware”) 不需要关心的事务性工作, 并且委托另一个 item writer 来执行实际的写入工作. |
MimeMessageItemWriter | 通过 Spring 的 JavaMailSender 对象, 类型为 的 item 可以作为 mail messages 发送出去 |
MongoItemWriter | 给定一个 MongoOperations 对象, 数据通过 MongoOperations.save(Object) 方法写入. 实际的写操作会推迟到事务提交时才执行. |
Neo4jItemWriter | 给定一个 Neo4jOperations 对象, item 通过 save(Object) 方法完成持久化,或者通过 delete(Object) 方法来删除, 取决于 的配置 |
PropertyExtractingDelegatingItemWriter | 扩展 AbstractMethodInvokingDelegator 创建动态参数. 动态参数是通过注入的 field name数组,从(SpringBeanWrapper)处理的 item 中获取的 |
RepositoryItemWriter | 给定一个 Spring Data CrudRepository 实现, 则使用配置文件指定的方法保存 item。 |
StaxEventItemWriter | 通过ObjectToXmlSerializer 对象将每个 item 转换为XML, 然后用 StAX 将这些内容写入 XML 文件。 |