目錄
第1篇 入門篇
第1章 Spring Batch簡介 2
1.1 什麼是批處理 2
1.2 Spring Batch 3
1.2.1 典型場景 3
1.2.2 Spring Batch架構 4
1.3 Spring Batch優勢 4
1.3.1 豐富的開箱即用組件 5
1.3.2 麵嚮Chunk的處理 5
1.3.3 事務管理能力 5
1.3.4 元數據管理 5
1.3.5 易監控的批處理應用 5
1.3.6 豐富的流程定義 5
1.3.7 健壯的批處理應用 6
1.3.8 易擴展的批處理應用 6
1.3.9 復用企業現有IT資産 6
1.4 Spring Batch 2.0新特性 6
1.4.1 支持Java5 7
1.4.2 支持非順序的Step 7
1.4.3 麵嚮Chunk處理 7
1.4.4 元數據訪問 11
1.4.5 擴展性 11
1.4.6 可配置性 12
1.5 Spring Batch 2.2新特性 13
1.5.1 Spring Data集成 13
1.5.2 支持Java配置 13
1.5.3 Spring Retry 14
1.5.4 Job Parameters 14
1.6 開發環境搭建 15
第2章 Spring Batch之Hello World 16
2.1 場景說明 16
2.2 項目準備 16
2.2.1 項目結構 16
2.2.2 準備對賬單文件 17
2.2.3 定義領域對象 18
2.3 定義job基礎設施 18
2.4 定義對賬Job 19
2.4.1 配置ItemReader 19
2.4.2 配置ItemProcessor 21
2.4.3 配置ItemWriter 22
2.5 執行Job 23
2.5.1 Java調用 23
2.5.2 JUnit單元測試 24
2.6 概念預覽 26
第2篇 基本篇
第3章 Spring Batch基本概念 28
3.1 命名空間 29
3.2 Job 30
3.2.1 Job Instance 31
3.2.2 Job Parameters 33
3.2.3 Job Execution 34
3.3 Step 35
3.3.1 Step Execution 37
3.4 Execution Context 38
3.5 Job Repository 39
3.5.1 Job Repository Schema 39
3.5.2 配置Memory Job
Repository 40
3.5.3 配置DB Job Repository 41
3.5.4 數據庫Schema 42
3.6 Job Launcher 48
3.7 ItemReader 49
3.8 ItemProcessor 50
3.9 ItemWriter 50
第4章 配置作業Job 52
4.1 基本配置 52
4.1.1 重啓Job 54
4.1.2 Job攔截器 55
4.1.3 Job Parameters校驗 58
4.1.4 Job抽象與繼承 59
4.2 高級特性 61
4.2.1 Step Scope 61
4.2.2 屬性Late Binding 62
4.3 運行Job 63
4.3.1 調度作業 65
4.3.2 命令行執行 68
4.3.3 與定時任務集成 71
4.3.4 與Web應用集成 73
4.3.5 停止Job 77
第5章 配置作業步Step 85
5.1 配置Step 86
5.1.1 Step抽象與繼承 87
5.1.2 Step執行攔截器 89
5.2 配置Tasklet 92
5.2.1 重啓Step 93
5.2.2 事務 94
5.2.3 事務迴滾 96
5.2.4 多綫程Step 97
5.2.5 自定義Tasklet 97
5.3 配置Chunk 99
5.3.1 提交間隔 102
5.3.2 異常跳過 103
5.3.3 Step重試 105
5.3.4 Chunk完成策略 107
5.3.5 讀、處理事務 110
5.4 攔截器 112
5.4.1 ChunkListener 115
5.4.2 ItemReadListener 116
5.4.3 ItemProcessListener 116
5.4.4 ItemWriteListener 117
5.4.5 SkipListener 117
5.4.6 RetryListener 118
第6章 讀數據ItemReader 120
6.1 ItemReader 120
6.1.1 ItemReader 120
6.1.2 ItemStream 121
6.1.3 係統讀組件 122
6.2 Flat格式文件 122
6.2.1 Flat文件格式 123
6.2.2 FlatFileItemReader 125
6.2.3 RecordSeparatorPolicy 129
6.2.4 LineMapper 130
6.2.5 DefaultLineMapper 131
6.2.6 LineCallbackHandler 138
6.2.7 讀分隔符文件 139
6.2.8 讀定長文件 141
6.2.9 讀JSON文件 143
6.2.10 讀記錄跨多行文件 145
6.2.11 讀混閤記錄文件 147
6.3 XML格式文件 150
6.3.1 XML解析 150
6.3.2 Spring OXM 151
6.3.3 StaxEventItemReader 153
6.4 讀多文件 156
6.5 讀數據庫 159
6.5.1 JdbcCursorItemReader 160
6.5.2 HibernateCursorItem
Reader 167
6.5.3 StoredProcedureItem
Reader 171
6.5.4 JdbcPagingItemReader 174
6.5.5 HibernatePagingItem
Reader 179
6.5.6 JpaPagingItemReader 183
6.5.7 IbatisPagingItemReader 186
6.6 讀JMS隊列 190
6.6.1 JmsItemReader 190
6.7 服務復用 194
6.8 自定義ItemReader 197
6.8.1 不可重啓ItemReader 197
6.8.2 可重啓ItemReader 199
6.9 攔截器 202
6.9.1 攔截器接口 202
6.9.2 攔截器異常 203
6.9.3 執行順序 204
6.9.4 Annotation 204
6.9.5 屬性Merge 205
第7章 寫數據ItemWriter 207
7.1 ItemWrite 207
7.1.1 ItemWriter 208
7.1.2 ItemStream 208
7.1.3 係統寫組件 209
7.2 Flat格式文件 210
7.2.1 FlatFileItemWriter 210
7.2.2 LineAggregator 214
7.2.3 FieldExtractor 217
7.2.4 迴調操作 219
7.3 XML格式文件 222
7.3.1 StaxEventItemWriter 222
7.3.2 迴調操作 226
7.4 寫多文件 230
7.4.1 MultiResourceItemWriter 230
7.4.2 擴展MultiResourceItem
Writer 233
7.5 寫數據庫 234
7.5.1 JdbcBatchItemWriter 235
7.5.2 HibernateItemWriter 239
7.5.3 IbatisBatchItemWriter 242
7.5.4 JpaItemWriter 245
7.6 寫JMS隊列 248
7.6.1 JmsItemWriter 248
7.7 組閤寫 252
7.8 Item路由Writer 254
7.9 發送郵件 258
7.9.1 SimpleMailMessageItem
Writer 258
7.10 服務復用 262
7.10.1 ItemWriterAdapter 262
7.10.2 PropertyExtracting
DelegatingItemWriter 264
7.11 自定義ItemWrite 267
7.11.1 不可重啓ItemWriter 267
7.11.2 可重啓ItemWriter 268
7.12 攔截器 271
7.12.1 攔截器接口 271
7.12.2 攔截器異常 273
7.12.3 執行順序 274
7.12.4 Annotation 274
7.12.5 屬性Merge 275
第8章 處理數據ItemProcessor 277
8.1 ItemProcessor 277
8.1.1 ItemProcessor 277
8.1.2 係統處理組件 278
8.2 數據轉換 279
8.2.1 部分數據轉換 279
8.2.2 數據類型轉換 281
8.3 數據過濾 282
8.3.1 數據Filter 282
8.3.2 數據過濾統計 283
8.4 數據校驗 285
8.4.1 Validator 285
8.4.2 ValidatingItemProcessor 286
8.5 組閤處理器 288
8.6 服務復用 291
8.6.1 ItemProcessorAdapter 291
8.7 攔截器 293
8.7.1 攔截器接口 293
8.7.2 攔截器異常 295
8.7.3 執行順序 295
8.7.4 Annotation 296
8.7.5 屬性Merge 297
第3篇 高級篇
第9章 作業流Step Flow 300
9.1 順序Flow 300
9.2 條件Flow 302
9.2.1 next 303
9.2.2 ExitStatus VS
BatchStatus 306
9.2.3 decision條件 308
9.3 並行Flow 311
9.4 外部Flow定義 314
9.4.1 Flow 314
9.4.2 FlowStep 317
9.4.3 JobStep 319
9.5 Step數據共享 321
9.6 終止Job 323
9.6.1 end 324
9.6.2 stop 326
9.6.3 fail 327
第10章 健壯Job 330
10.1 跳過Skip 331
10.1.1 配置Skip 331
10.1.2 跳過策略SkipPolicy 333
10.1.3 跳過攔截器 335
10.2 重試Retry 338
10.2.1 配置Retry 339
10.2.2 重試策略RetryPolicy 341
10.2.3 重試攔截器 343
10.2.4 重試模闆 345
10.3 重啓Restart 353
10.3.1 重啓Job 353
10.3.2 啓動次數限製 355
10.3.3 重啓已完成的任務 355
第11章 擴展Job、並行處理 357
11.1 可擴展性 357
11.2 多綫程Step 358
11.2.1 配置多綫程Step 359
11.2.2 綫程安全性 360
11.2.3 綫程安全Step 361
11.2.4 可重啓的綫程
安全Step 363
11.3 並行Step 365
11.4 遠程Step 366
11.4.1 遠程Step框架 366
11.4.2 基於SI實現遠程Step 368
11.5 分區Step 373
11.5.1 關鍵接口 374
11.5.2 基本配置 376
11.5.3 文件分區 378
11.5.4 數據庫分區 382
11.5.5 遠程分區Step 387
· · · · · · (
收起)