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 | 将任意类适配到
ItemReader 接口. |
| 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 |
Table A.2. 所有可用的 Item Writer 列表
| Item Writer | 说明 |
|---|---|
| AbstractItemStreamItemWriter | 抽象基类, 组合了
ItemStream 和
ItemWriter 接口。 |
| 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 | 将任意类适配到
ItemWriter 接口. |
| JdbcBatchItemWriter | 尽可能地利用
PreparedStatement 的批处理功能(batching features), 还可以采取基本的步骤来定位
flush 失败等问题。 |
| JmsItemWriter | 利用 JmsOperations 对象, 通过 JmsOperations.convertAndSend() 方法将 items 写入到默认队列( default queue) |
| JpaItemWriter | 这个 item writer 是 JPA EntityManager aware 的, 用来处理非jpa相关的(non-"jpa aware")
ItemWriter 不需要关心的事务性工作, 并且委托另一个 item writer 来执行实际的写入工作. |
| MimeMessageItemWriter | 通过 Spring 的 JavaMailSender 对象, 类型为
MimeMessage 的 item 可以作为 mail messages 发送出去 |
| MongoItemWriter | 给定一个 MongoOperations 对象, 数据通过 MongoOperations.save(Object) 方法写入. 实际的写操作会推迟到事务提交时才执行. |
| Neo4jItemWriter | 给定一个 Neo4jOperations 对象, item 通过
save(Object) 方法完成持久化,或者通过 delete(Object) 方法来删除, 取决于
ItemWriter 的配置 |
| PropertyExtractingDelegatingItemWriter | 扩展 AbstractMethodInvokingDelegator 创建动态参数. 动态参数是通过注入的 field name数组,从(SpringBeanWrapper)处理的 item 中获取的 |
| RepositoryItemWriter | 给定一个 Spring Data CrudRepository 实现, 则使用配置文件指定的方法保存 item。 |
| StaxEventItemWriter | 通过ObjectToXmlSerializer 对象将每个 item 转换为XML, 然后用 StAX 将这些内容写入 XML 文件。 |