封面
总结:这是目前市面上唯一一本中文的spring batch 书籍,版本有点旧了,理念没多大变化,还是很值得一看的。全书分为3块,第一块简介和HelloWorld展示了挺多东西,看的有点晕。第二部分说的非常细,每个Reader,Writer都有demo演示,这块还不错。最后高级部分又是浮光掠影似的,仅仅演示一下。总的来说,相对于reference还是加上了很多内容,有学习意义;但是大部分都是演示性的代码,缺乏一个完整的应用案例,每个都告诉你怎么配,但是什么情况使用确没有说清楚。特别的是RepeatOperations部分完全没有,还需要自己根据文档去补充对应的知识。
第1章 Spring Batch简介
一、批处理
- 不需人工介入、自动高效进行复杂的数据处理分析,并能定期(可重复)地完成业务处理的程序。
- 特点:自动执行、数据量大(百万-亿,超过还是要用海量数据处理框架-handoop)
- 典型场景:文件类型的大批量导入、处理、导出、日终数据整理,转换等。
二、srping batch 批处理应用框架
业务场景: 定期执行、消息驱动、并行处理、手动重启、顺序执行
技术目标:
a. 程序员专注于业务处理,让spring batch框架管理流程
b. 分离批处理执行环境和应用
c. 通用核心服务(由接口提供)
d. 开箱即用的处理方式(默认的执行接口实现)
e. 结合spring实现灵活的配置,扩展方式
f. 默认的实现易扩展,替换
g. 部署简单-
spring batch 架构
优势:轻量级、高健壮、提供开发效率
a. 丰富的开箱即用组件(Reader、Writer),减少开发时间
b. 面向Chunk的处理(写入针对批,兼顾效率和可靠性)
c. 事务管理能力
d. 元数据管理
e. 易监控的批处理应用
f. 丰富的流程定义
g. 健壮的应用特性(跳过,重试,重启)
h. 易扩展
i. 可灵活复用先用的IT资产(通过Adapter封装)2.0新特性(略)
2.2新特性(略)
搭建开发环境:
git clone https://github.com/spring-guides/gs-batch-processing.git
推荐从官网下载指引项目
第二章: Hello World
一、场景说明: 输入个人消费记录,生成对账单
二、项目准备
- 项目结构,代码量不大
- 对账单文件内容,领域对象,账单CreditBill
三、Job基础设施(Job-Context.xml)
包含:作业仓库、任务调度器、事务管理器。
四、对账Job配置:
<Job>元素,配置在job.xml中,包含reader,writer,processor三种Bean.
- ItemReader:用了spring batch提供的FlatFileItemReader,以及传入领域对象CreditBill
- ItemProcessor: 这个是自己实现的,通过<>泛型定义传入,传出对象类型
- ItemWriter:用了spring batch提供的FlatFileItemWriter.
五、执行Job
使用java调用JobExecution的方式
六、上述用到的概念说明.
这章一上来就是完整工程的demo讲解,看起来确实有些吃力.不过稍微了解了概念,后面看的就顺了.
参考文章
一篇文章全面解析大数据批处理框架Spring Batch
http://geek.csdn.net/news/detail/128641
从头认识SpringBatch批处理框架
http://blog.csdn.net/u011659172/article/category/6105368
Spring Batch参考文档中文版(3.0-不全)
https://kimmking.gitbooks.io/springbatchreference/content/
Spring Batch - Reference Documentation
https://docs.spring.io/spring-batch/trunk/reference/html/index.html