本書旨在深入學習Activiti的內部處理機制。由淺入深、由易到難地對Activiti源碼展開了系統(tǒng)的講解和擴展,并對框架中的部分缺陷進行修正,從而使讀者可以更加靈活的運用和改造Activiti。 本書內容包括流程引擎配置類以及流程引擎類的內部實現(xiàn)機制、配置器的使用、流程引擎的管理、流程資源的部署以及內部實現(xiàn)機制、元素解析底層實現(xiàn)、自定義元素解析實戰(zhàn)、為任意節(jié)點無限擴展屬性、流程虛擬機的創(chuàng)建以及運行原理、原子類職責、事件轉發(fā)器、日志監(jiān)聽器以及日志清洗器使用、修復Activiti部分Bug、自定義部署器實戰(zhàn)、對象解析器原理、監(jiān)聽器的原理、事務、活動行為類以及活動行為工廠類、會話緩存的構造過程以及缺陷、自定義高并發(fā)id生成器、自定義變量類型、節(jié)點跳轉、會簽、加簽、退簽、會簽節(jié)點自定義權重實現(xiàn)、接管Activiti映射文件、擴展任務節(jié)點處理人多維度配置、自定義代辦SQL、接管Activiti實體管理類等。 本書難度為初級到高級、適用于所有開發(fā)人員、設計人員、Activiti愛好者、即將成為架構師或者已經是架構師的朋友、也可以作為高校學生深入學習Activiti的參考讀物。
本書采用由淺入深、以點帶面,采用從整體到局部,再從局部放眼全局的視角,力求展示Activiti框架的全貌。這不僅是一本講解如何使用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é)點與連線關聯(lián)
第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日志清洗器架構
6.8.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.13節(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)聽器
11.5注入任務監(jiān)聽器
11.6觸發(fā)執(zhí)行監(jiān)聽器
11.6.1class方式調度
11.6.2delegateExpression方式調度
11.6.3expression方式調度
11.6.4執(zhí)行監(jiān)聽器觸發(fā)入口
11.7觸發(fā)任務監(jiān)聽器
11.8監(jiān)聽器
11.8.1默認類
11.8.2自定義類
11.9自定義全局任務監(jiān)聽器
11.10Activiti新特性之字段注射模式
第12章Activiti之設計模式
12.1命令模式說明
12.1.1命令模式的結構說明
12.1.2命令模式實戰(zhàn)
12.2Activiti命令模式
12.2.1初始化命令配置類
12.2.2Activiti事務傳播行為
12.2.3Spring事務攔截器
12.2.4初始化命令調度者
12.2.5初始化命令上下文工廠
12.2.6初始化命令攔截器
12.3Activiti職責鏈模式
12.4命令相關類職責
12.5命令攔截器
12.5.1日志攔截器
12.5.2命令上下文攔截器
12.5.3上下文類
12.5.4創(chuàng)建命令上下文實例對象
12.5.5命令調度者攔截器
12.6自定義命令攔截器
12.7命令類調度入口
12.8Activiti事務
12.8.1MyBatis事務管理
12.8.2事務上下文架構
12.8.3事務上下文工廠類
12.8.4事務監(jiān)聽器
12.8.5注冊同步事務
第13章流程虛擬機運轉
13.1流程實例運轉入口
13.2啟動流程實例命令類
13.2.1獲取ProcessDefinitionEntity實例對象
13.2.2重新生成流程定義緩存數據
13.3創(chuàng)建流程實例
13.3.1創(chuàng)建ExecutionEntity實例對象
13.3.2獲取dataObject
13.3.3區(qū)別流程實例與執(zhí)行實例
13.3.4添加歷史流程實例數據
13.4虛擬機運轉原理
13.5AtomicOperation架構
13.6流程實例啟動
13.6.1非異步節(jié)點處理
13.6.2異步節(jié)點處理
13.7原子類流轉
13.7.1流程啟動原子類
13.7.2流程啟動準備原子類
13.7.3活動節(jié)點執(zhí)行原子類
13.7.4開始節(jié)點行為類
13.7.5途經連線
13.7.6通知連線完成原子類
13.7.7連線銷毀原子類
13.7.8其他原子類
13.8Activiti新特性之忽略節(jié)點
第14章行為篇
14.1活動行為工廠類
14.1.1初始化活動行為工廠類
14.1.2活動行為類架構
14.2排他網關行為類原理
14.3擴展排他網關實戰(zhàn)
14.3.1自定義排他網關行為類
14.3.2自定義活動行為工廠類
14.3.3替換默認活動行為工廠類
14.4任務節(jié)點處理人多元化配置
14.4.1任務處理人擴展
14.4.2自定義任務解析器
14.4.3自定義任務行為類
14.4.4自定義活動行為工廠類
14.5忽略節(jié)點使用誤區(qū)
14.6修復Activiti忽略節(jié)點Bug
結構清晰。本書采用由淺入深、以點帶面,采用從整體到局部,再從局部放眼全局的視角,力求展示Activiti框架的全貌。1. 原理結合實戰(zhàn)。本書不甘心僅僅追求原理的講解,更希望通過原理延伸到實際項目開發(fā)中具體問題的解決,從而達到學以致用的目的。2. 通俗易懂。本書依然服務于廣大的Activiti初學者以及愛好者,盡量避免過于理論的描述方式,盡量做到少盲點、無盲點,從而更加“享受式”的學習,語言淺顯易懂卻不失專業(yè)。3. 技術。本書的講解涉及到了80%以上的源碼分析、并對框架級別的Bug和缺陷大膽假設,小心取證,從而對Activiti框架有一個、全新的認識。4. 代碼移植性高。本書的案例來自真實的企業(yè)級應用、代碼經過工業(yè)環(huán)境的驗證和實踐、可移植性強、可塑性高、力爭追求“小”而精悍。
即使是沖著內容而買,也會被這糟糕的紙質澆滅幾分熱情。紙張很薄泛黃通透,經不起折騰,沒有精裝書本的那種書墨香氣,氣味略微刺鼻。 如果這是正版的品質,那作者得多生氣。
剛出的新書,值得一看
很不錯,配套工作流的買更好
在工作中使用過Activiti,想完全了解其底層的運行原理
太需要一本研究activiti實現(xiàn)原理的書籍了。紙張差一點。