Spring Batch 權威指南 (The Definitive Guide to Spring Batch: Modern Finite Batch Processing in the Cloud)

[美]邁克爾·T.米內拉(Michael T. Minella) 著;張坤,張淵 譯

  • Spring Batch 權威指南 (The Definitive Guide to Spring Batch: Modern Finite Batch Processing in the Cloud)-preview-1
  • Spring Batch 權威指南 (The Definitive Guide to Spring Batch: Modern Finite Batch Processing in the Cloud)-preview-2
  • Spring Batch 權威指南 (The Definitive Guide to Spring Batch: Modern Finite Batch Processing in the Cloud)-preview-3
Spring Batch 權威指南 (The Definitive Guide to Spring Batch: Modern Finite Batch Processing in the Cloud)-preview-1

買這商品的人也買了...

商品描述

主要內容:
* 探索Spring Batch 4中的新特性。
* 使用Spring Batch項目在雲環境中完成有限的批處理任務。
* 通過一些示例,理解z新的基於Java和Spring Boot的配置技術
* 掌握複雜場景和雲環境中的批處理
* 開發能夠運行在現代平台上的批處理應用
* 除了Spring Batch,使用Spring Portfolio的其他部分開發關鍵任務型批處理應用

作者簡介

Michael T. Minella是一位軟件工程師、作家和演說家,擁有超過18年的專業經驗。 
Michael是Pivotal的軟件工程主管,領導了Spring Batch和Spring Cloud Task項目,他也是JSR-352(Java Batch)的專家組成員。
另外,他還是一名Java Champion和JavaOne Rockstar,曾在許多不同的Java國際會議上發表演講。

在日常工作外,Michael還在播客OffHeap上扮演“脾氣暴躁的人”。
他個人對信息安全話題(InfoSec)也很感興趣。 
\Michael的愛好包括攝影和木工,他和愛人Erica、孩子Addison生活在一起。

目錄大綱

目 錄

第1章 批處理和Spring 1
1.1 批處理的歷史 2
1.2 批處理面臨的挑戰 3
1.3 為什麼使用Java進行批處理 4
1.4 Spring Batch的其他用途 5
1.5 Spring Batch框架 7
1.5.1 使用Spring定義作業 8
1.5.2 管理作業 9
1.5.3 本地和遠程的並行化 9
1.5.4 標準化I/O 10
1.5.5 Spring Batch生態系統的其他部分 10
1.5.6 Spring的所有特性 10
1.6 如何閱讀本書 11
1.7 本章小結 11

第2章 Spring Batch入​​門 13
2.1 批處理的架構 13
2.1.1 深入討論作業和步驟 14
2.1.2 執行作業 15
2.1.3 並行化 16
2.1.4 文檔 18
2.2 項目設置 19
2.2.1 獲取Spring Batch 19
2.2.2 IntelliJ IDEA 21
2.3 “Hello,World!”示例程序 22
2.4 運行作業 25
2.5 本章小結 26

第3章 示例作業 27
3.1 了解敏捷開發 27
3.1.1 通過用戶故事捕捉需求 28
3.1.2 使用測試驅動開發捕捉設計 29
3.1.3 使用版本控制系統 29
3.1.4 在真正的開發環境中工作 30
3.2 理解作業需求 30
3.3 設計批處理作業 34
3.3.1 作業描述 35
3.3.2 理解數據模型 36
3.4 本章小結 37

第4章 理解作業和步驟 39
4.1 作業介紹 39
4.2 配置作業 41
4.2.1 基本的作業配置 41
4.2.2 作業參數 43
4.2.3 使用作業監聽器 55
4.2.4 執行上下文 58
4.2.5 操作ExecutionContext 58
4.3 使用步驟 62
4.3.1 Tasklet和基於塊的處理 62
4.3.2 步驟的配置 63
4.3.3 理解其他類型的Tasklet 65
4.3.4 步驟流 80
4.4 本章小結 95

第5章 作業存儲庫和元數據 97
5.1 作業存儲庫是什麼 97
5.1.1 使用關係數據庫 97
5.1.2 使用內存存儲庫 101
5.2 配置批處理基礎設施 101
5.2.1 BatchConfigurer接口 101
5.2.2 自定義JobRepository 102
5.2.3 自定義TransactionManager 103
5.2.4 自定義JobExplorer 104
5.2.5 自定義JobLauncher 105
5.2.6 配置數據庫 106
5.3 使用元數據 106
5.4 本章小結 110

第6章 運行作業 111
6.1 使用Spring Boot啟動作業 111
6.2 使用REST API啟動作業 113
6.3 使用Quartz進行調度 118
6.4 停止作業 121
6.4.1 自然結束 121
6.4.2 以編程方式結束 122
6.4.3 錯誤處理 134
6.5 控製作業的重啟 136
6.5.1 阻止作業再次執行 136
6.5.2 配置重啟次數 137
6.5.3 重新運行一個完整的步驟 138
6.6 本章小結 139

第7章 ItemReader 141
7.1 ItemReader接口 141
7.2 文件輸入 142
7.2.1 平面文件 142
7.2.2 XML文件 167
7.3 JSON 172
7.4 數據庫輸入 174
7.4.1 JDBC 174
7.4.2 Hibernate 180
7.4.3 JPA 184
7.4.4 存儲過程 186
7.4.5 Spring Data 187
7.5 現有的服務 191
7.6 自定義輸入 194
7.7 錯誤處理 198
7.7.1 跳過記錄 199
7.7.2 把無效的記錄記入日誌 200
7.7.3 處理沒有輸入的情況 202
7.8 本章小結 203

第8章 ItemProcessor 205
8.1 ItemProcessor概述 205
8.2 使用Spring Batch提供的ItemProcessor 206
8.2.1 ValidatingItemProcessor 207
8.2.2 輸入校驗 207
8.2.3 ItemProcessorAdapter 213
8.2.4 ScriptItemProcessor 215
8.2.5 CompositeItemProcessor 216
8.3 編寫自己的條目處理器 220
8.4 本章小結 222

第9章 ItemWriter 223
9.1 ItemWriter概述 224
9.2 基於文件的ItemWriter 225
9.2.1 FlatFileItemWriter 225
9.2.2 StaxEventItemWriter 235
9.3 基於數據庫的ItemWriter 239
9.3.1 JdbcBatchItemWriter 239
9.3.2 HibernateItemWriter 244
9.3.3 JpaItemWriter 249
9.4 NoSQL ItemWriter 252
9.4.1 MongoDB 252
9.4.2 Noe4j 255
9.4.3 Pivotal Gemfire和Apache Geode 259
9.4.4 Repository抽象 263
9.5 輸出到其他目標的ItemWriter 266
9.5.1 ItemWriterAdapter 266
9.5.2 PropertyExtractingDelegating-ItemWriter 268
9.5.3 JmsItemWriter 271
9.5.4 SimpleMailMessage-ItemWriter 275
9.6 複合的ItemWriter 280
9.6.1 MultiResource-ItemWriter 280
9.6.2 CompositeItemWriter 288
9.6.3 ClassifierComposite-ItemWriter 291
9.7 本章小結 294

第10章 示例應用 297
10.1 回顧銀行對賬單作業 297
10.2 配置新項目 298
10.3 導入客戶數據 300
10.3.1 驗證客戶ID 306
10.3.2 寫入客戶更新 308
10.4 導入交易數據 311
10.4.1 讀取交易 313
10.4.2 寫入交易 314
10.5 計算當前餘額 315
10.5.1 讀取交易 316
10.5.2 更新賬戶餘額 316
10.6 生成對賬單 317
10.6.1 讀取對賬單數據 317
10.6.2 為對賬單添加賬戶信息 320
10.6.3 寫對賬單 322
10.7 本章小結 326

第11章 伸縮和調優 327
11.1 分析批處理作業的性能 327
11.1.1 VisualVM之旅 328
11.1.2 分析Spring Batch應用的性能 331
11.2 伸縮作業 337
11.2.1 多線程步驟 337
11.2.2 並行步驟 339
11.2.3 組合使用AsyncItemProcessor和AsyncItemWriter 344
11.2.4 分區 346
11.2.5 遠程分塊 360
11.3 本章小結 365

第12章 雲原生的批處理 367
12.1 “12要素應用” 367
12.1.1 代碼庫 368
12.1.2 依賴 368
12.1.3 配置 368
12.1.4 支持服務 368
12.1.5 構建、發布、運行 369
12.1.6 進程 369
12.1.7 端口綁定 369
12.1.8 並發 369
12.1.9 可丟棄性 369
12.1.10 開發環境與線上環境的等價 370
12.1.11 日誌 370
12.1.12 管理進程 370
12.2 一個簡單的批處理作業 370
12.3 斷路器 376
12.4 外部化配置 379
12.4.1 Spring Cloud Config 379
12.4.2 通過Eureka進行服務綁定 381
12.5 批處理過程的編排 384
12.5.1 Spring Cloud Data Flow 385
12.5.2 Spring Cloud Task 386
12.5.3 註冊和運行任務 387
12.6 本章小結 390

第13章 批處理的測試 391
13.1 使用JUnit和Mockito進行單元測試 391
13.1.1 JUnit 392
13.1.2 mock對象 394
13.1.3 Mockito 395
13.2 使用Spring的實用工具進行集成測試 398
13.2.1 使用Spring進行通用集成測試 398
13.2.2 測試Spring Batch 400
13.3 本章小結 408