《Spring Batch 批處理框架》
基本信息
做者: 劉相
出版社:電子工業出版社
ISBN:9787121252419
上架時間:2015-1-24
出版日期:2015 年2月
開本:16開
頁碼:404
版次:1-1數據庫
![]() |
內容簡介
《Spring Batch 批處理框架》
本書全面、系統地介紹了批處理框架Spring Batch,經過詳盡的實戰示例向讀者展現了Spring Batch框架對大數據批處理的基本開發能力,並對框架的架構設計、源碼作了特定的剖析;在幫助讀者掌握Spring Batch框架基本功能、高級功能的同時,深刻剖析了Spring Batch框架的設計原理,幫助讀者能夠遊刃有餘地掌握Spring Batch框架。
本書分爲入門篇、基本篇和高級篇三部分。入門篇介紹了批處理、Spring Batch的基本特性和新特性,快速入門的Hello World等內容引領讀者入門,從而進入數據批處理的世界。基本篇重點講述了數據批處理的核心概念、典型的做業配置、做業步配置,以及Spring Batch框架中經典的三步走策略:數據讀、數據處理和數據寫,詳盡地介紹瞭如何對CVS格式文件、JSON格式文件、XML文件、數據庫和JMS消息隊列中的數據進行讀操做、處理和寫操做,對於數據庫的操做詳細介紹了使用JDBC、Hibernate、存儲過程、JPA、Ibatis等處理。高級篇提供了高性能、高可靠性、並行處理的能力,分別向讀者展現瞭如何實現做業流的控制,包括順序流、條件流、並行流,如何實現健壯的做業,包括跳過、重試和重啓等,如何實現擴展做業及並行做業,包括多線程做業、並行做業、遠程做業和分區做業等,從而實現分佈式、高性能、高擴展性的數據批處理做業。
目錄
第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
後記 392安全