本書旨在深入學習Activiti的內部處理機制。由淺入深、由易到難地對Activiti源碼展開了系統的講解和擴展,并對框架中的部分缺陷進行修正,從而使讀者可以更加靈活的運用和改造Activiti。
本書內容包括流程引擎配置類以及流程引擎類的內部實現機制、配置器的使用、流程引擎的管理、流程資源的部署以及內部實現機制、元素解析底層實現、自定義元素解析實戰(zhàn)、為任意節(jié)點無限擴展屬性、流程虛擬機的創(chuàng)建以及運行原理、原子類職責、事件轉發(fā)器、日志監(jiān)聽器以及日志清洗器使用、修復Activiti部分Bug、自定義部署器實戰(zhàn)、對象解析器原理、監(jiān)聽器的原理、事務、活動行為類以及活動行為工廠類、會話緩存的構造過程以及缺陷、自定義高并發(fā)id生成器、自定義變量類型、節(jié)點跳轉、會簽、加簽、退簽、會簽節(jié)點自定義權重實現、接管Activiti映射文件、擴展任務節(jié)點處理人多維度配置、自定義代辦SQL、接管Activiti實體管理類等。
本書難度為初級到高級、適用于所有開發(fā)人員、設計人員、Activiti愛好者、即將成為架構師或者已經是架構師的朋友、也可以作為高校學生深入學習Activiti的參考讀物。
第1章環(huán)境搭建
1.1環(huán)境搭建
1.1.1安裝GitHub
1.1.2安裝Maven
1.2編譯源碼
1.3源碼目錄說明
1.4安裝流程設計器
1.5工程搭建
第2章探險流程引擎
2.1流程配置文件
2.1.1Activiti配置風格
2.1.2Spring配置風格
2.2流程引擎架構
2.3構造流程引擎實例對象
2.3.1初始化流程引擎之Activiti配置風格
2.3.2構造流程引擎實例對象
2.3.3創(chuàng)建流程引擎配置類實例
2.3.4初始化流程引擎
2.3.5初始化流程引擎之Spring配置風格
2.4初始化流程引擎配置類
2.5配置器
2.5.1初始化配置器
2.5.2配置器實戰(zhàn)
2.6初始化流程引擎
2.6.1操作引擎表
2.7管理流程引擎
2.7.1注冊流程引擎
2.7.2關閉流程引擎
2.8流程引擎生命周期監(jiān)聽器
2.9其他方式構造引擎實例
2.9.1ProcessEngineConfiguration類創(chuàng)建引擎
2.9.2編程方式創(chuàng)建引擎
第3章初識流程資源部署
3.1流程資源概述
3.1.1流程文檔部署生命周期
3.1.2DeploymentBuilder核心類
3.2流程文檔部署
3.2.1定義流程文檔
3.2.2文本方式部署
3.2.3classpath資源部署
3.2.4流式部署
3.3BpmnModel方式部署
3.4校驗BpmnModel實例對象
3.5BpmnModel轉換流程文檔
3.6流程文檔轉換BpmnModel
3.7使用建議
第4章流程文檔解析原理
4.1文檔解析基礎
4.1.1文檔解析模型
4.1.2Activiti文檔解析技術選型演變
4.1.3文檔解析實戰(zhàn)
4.2元素解析功能架構設計
4.2.1BPMN2.0元素概述
4.2.2元素解析功能架構設計
4.2.3開閉原則
4.2.4元素與元素屬性承載類以及元素解析器的對應關系
4.2.5元素屬性承載類架構
4.3元素解析環(huán)境準備
4.3.1文檔轉換器
4.3.2封裝流程文檔數據流
4.3.3初始化元素解析器
4.3.4文檔轉換器功能
4.3.5元素解析環(huán)境準備
4.3.6驗證流程文檔格式
4.4元素解析
4.4.1元素解析入口
4.4.2解析根元素
4.4.3流程內元素解析入口
4.4.4解析連線
4.4.5獲取元素坐標
4.5子元素解析
4.5.1初始化子元素解析器
4.5.2解析子元素
4.5.3解析擴展元素
4.6節(jié)點與連線關聯
第5章自定義元素解析
5.1自定義元素解析原理
5.2存儲自定義元素屬性值
5.3自定義元素實戰(zhàn)
5.4擴展黑名單元素
5.4.1擴展元素屬性原理
5.4.2任務節(jié)點擴展屬性實戰(zhàn)
5.5擴展非黑名單元素
5.5.1自定義元素解析器
5.5.2替換引擎元素解析器
第6章事件轉發(fā)器
6.1初始化事件轉發(fā)器
6.2事件轉發(fā)器架構
6.3注冊事件監(jiān)聽器
6.4事件轉發(fā)功能之新老版本兼容
6.5事件轉發(fā)原理以及缺陷
6.6添加事件監(jiān)聽器
6.6.1使用配置方式添加
6.6.2動態(tài)添加
6.7日志監(jiān)聽器
6.7.1初始化日志監(jiān)聽器
6.7.2初始化日志處理器
6.7.3日志處理器架構
6.7.4收集日志數據入口
6.8日志清洗器架構
68.1數據庫日志清洗器
6.8.2生成日志數據
6.8.3日志存儲
6.9自定義日志清洗器
第7章流程文檔部署原理
7.1初始化部署器
7.1.1初始化內置部署器
7.1.2部署器依賴關系
7.2部署命令
7.2.1過濾重復文檔
7.2.2設置標識位
7.2.3添加會話緩存
7.2.4部署管理器
7.3Bpmn部署器
7.3.1獲取資源信息
7.3.2封裝資源信息
7.3.3校驗資源名稱
7.3.4計算流程定義版本值
7.3.5生成流程定義id值
7.3.6移除過期作業(yè)
7.3.7添加作業(yè)
7.3.8處理消息
7.3.9處理信號
7.3.10設置流程啟動人
7.4自定義部署器實戰(zhàn)
第8章緩存
8.1背景
8.2初始化緩存策略
8.3部署管理器
8.4緩存處理類架構
8.5默認緩存處理類及Bug
8.6流程定義緩存
8.6.1自定義緩存處理類
8.6.2驗證自定義緩存處理類
8.7Activiti新特性之節(jié)點緩存
8.8節(jié)點緩存實戰(zhàn)
8.9節(jié)點緩存原理
8.9.1初始化節(jié)點緩存數據
8.9.2更新節(jié)點緩存
8.9.3節(jié)點緩存架構
8.9.4節(jié)點緩存使用誤區(qū)
8.10自定義節(jié)點緩存實戰(zhàn)
8.10.1自定義節(jié)點緩存類
8.10.2修復Activiti節(jié)點緩存不更新Bug
8.10.3擴展引擎配置類功能
8.10.4配置器高級用
8.10.5使用自定義節(jié)點緩存類
8.11任務節(jié)點緩存數據獲取原理
8.11.1獲取任務節(jié)點緩存數據
8.11.2解析任務節(jié)點緩存數據
8.11.3運用任務節(jié)點緩存數據
8.12動態(tài)修改任務節(jié)點緩存數據
8.3節(jié)點緩存使用技巧
第9章定時作業(yè)
9.1初始化作業(yè)執(zhí)行器
9.2初始化作業(yè)處理器
9.2.1任務超時作業(yè)
9.2.2定時任務作業(yè)
9.2.3定時啟動流程實例作業(yè)
9.2.4其他作業(yè)
9.3作業(yè)執(zhí)行器原理
9.3.1初始化作業(yè)執(zhí)行器
9.3.2啟動作業(yè)執(zhí)行器
9.4添加定時作業(yè)
9.5執(zhí)行定時作業(yè)
9.6處理作業(yè)
9.6.1批量處理作業(yè)
9.6.2執(zhí)行作業(yè)之異常處理
9.7關閉作業(yè)執(zhí)行器
9.8自定義作業(yè)處理器
第10章流程虛擬機
10.1流程虛擬機原理
10.2虛擬機入口
10.3流程定義轉換準備
10.3.1初始化對象解析器集合
10.3.2初始化內置對象解析器
10.3.3解析調度類BpmnParseHandlers
10.3.4BpmnParseHandler架構
10.3.5對象解析器架構
10.4流程對象解析入口
10.5流程子元素對象解析入口
10.5.1任務節(jié)點對象解析
10.5.2創(chuàng)建ActivityImpl實例對象
10.5.3多實例對象解析
10.5.4連線對象解析
10.6PvmProcessElement類架構
10.7自定義對象解析器
10.7.1任務節(jié)點擴展屬性
10.7.2自定義任務節(jié)點對象解析器
10.7.3獲取自定義屬性
10.7.4運用自定義對象解析器
10.8流程虛擬機實戰(zhàn)
10.8.1獲取流程虛擬機對象
10.8.2入侵流程虛擬機
10.9操作連線表達式
10.9.1自動計算連線表達式
10.9.2獲取連線表達
第11章監(jiān)聽器原理
11.1監(jiān)聽器生命周期
11.2內置記錄監(jiān)聽器
11.2.1內置任務記錄監(jiān)聽器
11.2.2內置執(zhí)行記錄監(jiān)聽器
11.3歷史解析器架構
11.3.1添加內置記錄監(jiān)聽器
11.3.2初始化歷史解析器
11.3.3歷史節(jié)點結束通知
11.3.4控制歸檔歷史數據級別
11.3.5更新歷史數據
11.3.6歷史節(jié)點開始通知
11.4注入執(zhí)行監(jiān)聽器