预购商品
书目分类
特别推荐
本書主要包括: 探索Spring Batch 4中的新特性。 使用Spring Batch項目在雲環境中完成有限的批次處理任務。 通過一些示例,理解最新的基於Java和Spring Boot的配置技術 掌握複雜場景和雲環境中的批次處理 開發能夠運行在現代平臺上的批次處理應用 除了Spring Batch,使用Spring Portfolio的其他部分開發關鍵任務型批次處理應用
第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
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生活在一起。
客服公告
热门活动
订阅电子报