第1篇 入门篇
第1章 Spring Batch简介
1.1 什么是批处理
1.2 Spring Batch
1.2.1 典型场景
1.2.2 Spring Batch架构
1.3 Spring Batch优势
1.3.1 丰富的开箱即用组件
1.3.2 面向Chunk的处理
1.3.3 事务管理能力
1.3.4 元数据管理
1.3.5 易监控的批处理应用
1.3.6 丰富的流程定义
1.3.7 健壮的批处理应用
1.3.8 易扩展的批处理应用
1.3.9 复用企业现有IT资产
1.4 Spring Batch 2.0新特性
1.4.1 支持Java5
1.4.2 支持非顺序的Step
1.4.3 面向Chunk处理
1.4.4 元数据访问
1.4.5 扩展性
1.4.6 可配置性
1.5 Spring Batch 2.2新特性
1.5.1 Spring Data集成
1.5.2 支持Java配置
1.5.3 Spring Retry
1.5.4 Job Parameters
1.6 开发环境搭建
第2章 Spring Batch之Hello World
2.1 场景说明
2.2 项目准备
2.2.1 项目结构
2.2.2 准备对账单文件
2.2.3 定义领域对象
2.3 定义job基础设施
2.4 定义对账Job
2.4.1 配置ItemReader
2.4.2 配置ItemProcessor
2.4.3 配置ItemWriter
2.5 执行Job
2.5.1 Java调用
2.5.2 JUnit单元测试
2.6 概念预览
第2篇 基本篇
第3章 Spring Batch基本概念
3.1 命名空间
3.2 Job
3.2.1 Job Instance
3.2.2 Job Parameters
3.2.3 Job Execution
3.3 Step
3.3.1 Step Execution
3.4 Execution Context
3.5 Job Repository
3.5.1 Job Repository Schema
3.5.2 配置Memory Job
Repository
3.5.3 配置DB Job Repository
3.5.4 数据库Schema
3.6 Job Launcher
3.7 ItemReader
3.8 ItemProcessor
3.9 ItemWriter
第4章 配置作业Job
4.1 基本配置
4.1.1 重启Job
4.1.2 Job拦截器
4.1.3 Job Parameters校验
4.1.4 Job抽象与继承
4.2 高级特性
4.2.1 Step Scope
4.2.2 属性Late Binding
4.3 运行Job
4.3.1 调度作业
4.3.2 命令行执行
4.3.3 与定时任务集成
4.3.4 与Web应用集成
4.3.5 停止Job
第5章 配置作业步Step
5.1 配置Step
5.1.1 Step抽象与继承
5.1.2 Step执行拦截器
5.2 配置Tasklet
5.2.1 重启Step
5.2.2 事务
5.2.3 事务回滚
5.2.4 多线程Step
5.2.5 自定义Tasklet
5.3 配置Chunk
5.3.1 提交间隔
5.3.2 异常跳过
5.3.3 Step重试
5.3.4 Chunk完成策略
5.3.5 读、处理事务
5.4 拦截器
5.4.1 ChunkListener
5.4.2 ItemReadListener
5.4.3 ItemProcessListener
5.4.4 ItemWriteListener
5.4.5 SkipListener
5.4.6 RetryListener
第6章 读数据ItemReader
6.1 ItemReader
6.1.1 ItemReader
6.1.2 ItemStream
6.1.3 系统读组件
6.2 Flat格式文件
6.2.1 Flat文件格式
6.2.2 FlatFileItemReader
6.2.3 RecordSeparatorPolicy
6.2.4 LineMapper
6.2.5 DefaultLineMapper
6.2.6 LineCallbackHandler
6.2.7 读分隔符文件
6.2.8 读定长文件
6.2.9 读JSON文件
6.2.10 读记录跨多行文件
6.2.11 读混合记录文件
6.3 XML格式文件
6.3.1 XML解析
6.3.2 Spring OXM
6.3.3 StaxEventItemReader
6.4 读多文件
6.5 读数据库
6.5.1 JdbcCursorItemReader
6.5.2 HibernateCursorItem
Reader
6.5.3 StoredProcedureItem
Reader
6.5.4 JdbcPagingItemReader
6.5.5 HibernatePagingItem
Reader
6.5.6 JpaPagingItemReader
6.5.7 IbatisPagingItemReader
6.6 读JMS队列
6.6.1 JmsItemReader
6.7 服务复用
6.8 自定义ItemReader
6.8.1 不可重启ItemReader
6.8.2 可重启ItemReader
6.9 拦截器
6.9.1 拦截器接口
6.9.2 拦截器异常
6.9.3 执行顺序
6.9.4 Annotation
6.9.5 属性Merge
第7章 写数据ItemWriter
7.1 ItemWrite
7.1.1 ItemWriter
7.1.2 ItemStream
7.1.3 系统写组件
7.2 Flat格式文件
7.2.1 FlatFileItemWriter
7.2.2 LineAggregator
7.2.3 FieldExtractor
7.2.4 回调操作
7.3 XML格式文件
7.3.1 StaxEventItemWriter
7.3.2 回调操作
7.4 写多文件
7.4.1 MultiResourceItemWriter
7.4.2 扩展MultiResourceItem
Writer
7.5 写数据库
7.5.1 JdbcBatchItemWriter
7.5.2 HibernateItemWriter
7.5.3 IbatisBatchItemWriter
7.5.4 JpaItemWriter
7.6 写JMS队列
7.6.1 JmsItemWriter
7.7 组合写
7.8 Item路由Writer
7.9 发送邮件
7.9.1 SimpleMailMessageItem
Writer
7.10 服务复用
7.10.1 ItemWriterAdapter
7.10.2 PropertyExtracting
DelegatingItemWriter
7.11 自定义ItemWrite
7.11.1 不可重启ItemWriter
7.11.2 可重启ItemWriter
7.12 拦截器
7.12.1 拦截器接口
7.12.2 拦截器异常
7.12.3 执行顺序
7.12.4 Annotation
7.12.5 属性Merge
第8章 处理数据ItemProcessor
8.1 ItemProcessor
8.1.1 ItemProcessor
8.1.2 系统处理组件
8.2 数据转换
8.2.1 部分数据转换
8.2.2 数据类型转换
8.3 数据过滤
8.3.1 数据Filter
8.3.2 数据过滤统计
8.4 数据校验
8.4.1 Validator
8.4.2 ValidatingItemProcessor
8.5 组合处理器
8.6 服务复用
8.6.1 ItemProcessorAdapter
8.7 拦截器
8.7.1 拦截器接口
8.7.2 拦截器异常
8.7.3 执行顺序
8.7.4 Annotation
8.7.5 属性Merge
第3篇 高级篇
第9章 作业流Step Flow
9.1 顺序Flow
9.2 条件Flow
9.2.1 next
9.2.2 ExitStatus VS
BatchStatus
9.2.3 decision条件
9.3 并行Flow
9.4 外部Flow定义
9.4.1 Flow
9.4.2 FlowStep
9.4.3 JobStep
9.5 Step数据共享
9.6 终止Job
9.6.1 end
9.6.2 stop
9.6.3 fail
第10章 健壮Job
10.1 跳过Skip
10.1.1 配置Skip
10.1.2 跳过策略SkipPolicy
10.1.3 跳过拦截器
10.2 重试Retry
10.2.1 配置Retry
10.2.2 重试策略RetryPolicy
10.2.3 重试拦截器
10.2.4 重试模板
10.3 重启Restart
10.3.1 重启Job
10.3.2 启动次数限制
10.3.3 重启已完成的任务
第11章 扩展Job、并行处理
11.1 可扩展性
11.2 多线程Step
11.2.1 配置多线程Step
11.2.2 线程安全性
11.2.3 线程安全Step
11.2.4 可重启的线程
安全Step
11.3 并行Step
11.4 远程Step
11.4.1 远程Step框架
11.4.2 基于SI实现远程Step
11.5 分区Step
11.5.1 关键接口
11.5.2 基本配置
11.5.3 文件分区
11.5.4 数据库分区
11.5.5 远程分区Step
后记