Spring Batch 核心概念 2
发布时间
阅读量:
阅读量
– Start
在上一节中举例说明了几个关键概念:ItemReader、ItemWriter、ItemProcessor以及chunk之间的关系。这些涉及的概念包括:这些概念之间的相互作用机制及其在数据处理中的具体应用。接下来让我们详细探讨相关的代码实现以及具体的运行流程图。
<batch:chunk reader="extractFileReader" processor="extractFileProcessor" writer="extractFileWriter" commit-interval="10"/>

ItemReader
ItemReader 负责读取数据,它有如下实现类。
| 实现类 | 说明 |
|---|---|
| FlatFileItemReader | 从文件中读取数据 |
| MultiResourceItemReader | 从多个文件中读取数据 |
| ResourcesItemReader | 从多个文件中读取数据,支持通配符 |
| LdifReader | 通过 Spring LDAP 从文件中读取数据 |
| MappingLdifReader | 通过 Spring LDAP 从文件中读取数据 |
| StaxEventItemReader | 通过 StAX 从 XML 文件中读取数据 |
| JdbcCursorItemReader | 通过 SQL 从数据库中读取数据 |
| StoredProcedureItemReader | 通过存储过程从数据库中读取数据 |
| HibernateCursorItemReader | 通过 HQL 从数据库中读取数据 |
| Neo4j4ItemReader | 从 Neo4j 数据库中读取数据 |
| Neo4jItemReader | 从 Neo4j 数据库中读取数据 |
| MongoItemReader | 从 MongoDB 数据库中读取数据 |
| RepositoryItemReader | 通过 Repository 从数据库中读取数据 |
| HibernatePagingItemReader | 通过 Hibernate 从数据库中读取数据,支持分页 |
| IbatisPagingItemReader | 通过 Ibatis 从数据库中读取数据,支持分页 |
| JdbcPagingItemReader | 通过 SQL 从数据库中读取数据,支持分页 |
| JpaPagingItemReader | 通过 Jpa 从数据库中读取数据,支持分页 |
| JmsItemReader | 从 JMS 中读取数据 |
| AmqpItemReader | 从 AMQP 中读取数据 |
| ListItemReader | 从 List 中读取数据 |
| IteratorItemReader | 从 Iterable 中读取数据 |
| ItemReaderAdapter | 装饰者,真正的操作委托给代理 |
| SingleItemPeekableItemReader | 装饰者,允许查看下一条数据,真正的操作委托给代理 |
| SynchronizedItemStreamReader | 装饰者,增加同步功能,真正的操作委托给代理 |
ItemWriter
ItemWriter 负责输出数据,它有如下实现类。
| 实现类 | 说明 |
|---|---|
| FlatFileItemWriter | 将数据输出到文件 |
| MultiResourceItemWriter | 将数据输出到多个文件 |
| StaxEventItemWriter | 将数据输出到 XML 文件 |
| JdbcBatchItemWriter | 通过 SQL,将数据输出到数据库 |
| HibernateItemWriter | 通过 Hibernate,将数据输出到数据库 |
| IbatisBatchItemWriter | 通过 Ibatis,将数据输出到数据库 |
| JpaItemWriter | 通过 JPA,将数据输出到数据库 |
| RepositoryItemWriter | 通过 Repository,将数据输出到数据库 |
| MongoItemWriter | 将数据输出到 MongoDB |
| Neo4jItemWriter | 将数据输出到 Neo4j |
| GemfireItemWriter | 将数据输出到 GemFire |
| SpELMappingGemfireItemWriter | 将数据输出到 GemFire |
| JmsItemWriter | 将数据输出到 JMS |
| AmqpItemWriter | 将数据输出到 AMQP |
| ListItemWriter | 将数据输出到 List |
| MimeMessageItemWriter | 将数据通过 Email 发送 |
| SimpleMailMessageItemWriter | 将数据通过 Email 发送 |
| ItemWriterAdapter | 装饰者,真正的操作委托给代理 |
| CompositeItemWriter | 装饰者,将数据输出到多个 ItemWriter |
| ClassifierCompositeItemWriter | 装饰者,将数据输出到多个 ItemWriter |
| PropertyExtractingDelegatingItemWriter | 装饰者,允许调用自定义方法 |
ItemProcessor
ItemProcessor 负责执行数据转换与验证等功能。一般情况下,我们可能需要自行创建该类。但Spring框架已经为我们提供了相应的现成类。
| 实现类 | 说明 |
|---|---|
| PassThroughItemProcessor | 不做任何转换 |
| ScriptItemProcessor | 调用脚本对数据处理 |
| ValidatingItemProcessor | 调用验证器验证数据 |
| ItemProcessorAdapter | 调用自定义方法对数据处理 |
| CompositeItemProcessor | 调用多个 ItemProcessor |
| ClassifierCompositeItemProcessor | 调用多个 ItemProcessor |
batch:chunk
在Spring Batch中处理流程中,在ItemReader读取单条数据后,在ItemProcessor完成对这些数据的处理过程,并将其存入List中;当List中的数量达到commit-interval时,在适当的时候调用ItemWriter将这些数据输出至系统指定的位置。
– 更多参见:Spring Batch 精萃
– 请注意:转载时请注明出处
– 更新日期:2017年7月20日
– 撰写于:ShangBo于2017年7月20日
全部评论 (0)
还没有任何评论哟~
