博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Batch 核心概念 2
阅读量:4049 次
发布时间:2019-05-25

本文共 2404 字,大约阅读时间需要 8 分钟。

– Start


通过上节的例子,其中涉及到几个概念 ItemReader,ItemWriter,ItemProcessor, chunk,先来看下面的代码片段和图片。

这里写图片描述

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 将数据输出。

– 声 明:转载请注明出处
– Last Updated on 2017-07-20
– Written by ShangBo on 2017-07-20
– End

你可能感兴趣的文章
iOS7单元测试
查看>>
ios framework 通用库的制作
查看>>
出现( linker command failed with exit code 1)错误总结
查看>>
iOS开发中一些常见的并行处理
查看>>
iOS获取手机的Mac地址
查看>>
ios7.1发布企业证书测试包的问题
查看>>
如何自定义iOS中的控件
查看>>
iOS 开发百问
查看>>
Mac环境下svn的使用
查看>>
github简单使用教程
查看>>
如何高效利用GitHub
查看>>
GitHub详细教程
查看>>
Swift概览
查看>>
iOS系统方法进行AES对称加密
查看>>
程序内下载App,不用跳转到AppStore
查看>>
iOS应用崩溃日志分析
查看>>
获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等
查看>>
IOS7 开发注意事项
查看>>
iOS开发~CocoaPods使用详细说明
查看>>
在xcode6中使用矢量图(iPhone6置配UI)
查看>>