本書旨在深入學習Activiti的內部處理機制。由淺入深、由易到難地對Activiti源碼展開了系統的講解和擴展,并對框架中的部分缺陷進行修正,從而使讀者可以更加靈活的運用和改造Activiti。 本書內容包括流程引擎配置類以及流程引擎類的內部實現機制、配置器的使用、流程引擎的管理、流程資源的部署以及內部實現機制、元素解析底層實現、自定義元素解析實戰、為任意節點無限擴展屬性、流程虛擬機的創建以及運行原理、原子類職責、事件轉發器、日志監聽器以及日志清洗器使用、修復Activiti部分Bug、自定義部署器實戰、對象解析器原理、監聽器的原理、事務、活動行為類以及活動行為工廠類、會話緩存的構造過程以及缺陷、自定義高并發id生成器、自定義變量類型、節點跳轉、會簽、加簽、退簽、會簽節點自定義權重實現、接管Activiti映射文件、擴展任務節點處理人多維度配置、自定義代辦SQL、接管Activiti實體管理類等。 本書難度為初級到高級、適用于所有開發人員、設計人員、Activiti愛好者、即將成為架構師或者已經是架構師的朋友、也可以作為高校學生深入學習Activiti的參考讀物。
本書采用由淺入深、以點帶面,采用從整體到局部,再從局部放眼全局的視角,力求展示Activiti框架的全貌。這不僅是一本講解如何使用Activiti的書,還講解了Activiti框架的技術選型和架構思想的書,一本物有所值、貨真價實的書。本書中的示例程序均是從實際項目提取簡化而來,相信這是你不可錯過的一本好書。
目錄
第1章環境搭建
1.1環境搭建
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創建流程引擎配置類實例
2.3.4初始化流程引擎
2.3.5初始化流程引擎之Spring配置風格
2.4初始化流程引擎配置類
2.5配置器
2.5.1初始化配置器
2.5.2配置器實戰
2.6初始化流程引擎
2.6.1操作引擎表
2.7管理流程引擎
2.7.1注冊流程引擎
2.7.2關閉流程引擎
2.8流程引擎生命周期監聽器
2.9其他方式構造引擎實例
2.9.1ProcessEngineConfiguration類創建引擎
2.9.2編程方式創建引擎
第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文檔解析實戰
4.2元素解析功能架構設計
4.2.1BPMN2.0元素概述
4.2.2元素解析功能架構設計
4.2.3開閉原則
4.2.4元素與元素屬性承載類以及元素解析器的對應關系
4.2.5元素屬性承載類架構
4.3元素解析環境準備
4.3.1文檔轉換器
4.3.2封裝流程文檔數據流
4.3.3初始化元素解析器
4.3.4文檔轉換器功能
4.3.5元素解析環境準備
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節點與連線關聯
第5章自定義元素解析
5.1自定義元素解析原理
5.2存儲自定義元素屬性值
5.3自定義元素實戰
5.4擴展黑名單元素
5.4.1擴展元素屬性原理
5.4.2任務節點擴展屬性實戰
5.5擴展非黑名單元素
5.5.1自定義元素解析器
5.5.2替換引擎元素解析器
第6章事件轉發器
6.1初始化事件轉發器
6.2事件轉發器架構
6.3注冊事件監聽器
6.4事件轉發功能之新老版本兼容
6.5事件轉發原理以及缺陷
6.6添加事件監聽器
6.6.1使用配置方式添加
6.6.2動態添加
6.7日志監聽器
6.7.1初始化日志監聽器
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移除過期作業
7.3.7添加作業
7.3.8處理消息
7.3.9處理信號
7.3.10設置流程啟動人
7.4自定義部署器實戰
第8章緩存
8.1背景
8.2初始化緩存策略
8.3部署管理器
8.4緩存處理類架構
8.5默認緩存處理類及Bug
8.6流程定義緩存
8.6.1自定義緩存處理類
8.6.2驗證自定義緩存處理類
8.7Activiti新特性之節點緩存
8.8節點緩存實戰
8.9節點緩存原理
8.9.1初始化節點緩存數據
8.9.2更新節點緩存
8.9.3節點緩存架構
8.9.4節點緩存使用誤區
8.10自定義節點緩存實戰
8.10.1自定義節點緩存類
8.10.2修復Activiti節點緩存不更新Bug
8.10.3擴展引擎配置類功能
8.10.4配置器高級用法
8.10.5使用自定義節點緩存類
8.11任務節點緩存數據獲取原理
8.11.1獲取任務節點緩存數據
8.11.2解析任務節點緩存數據
8.11.3運用任務節點緩存數據
8.12動態修改任務節點緩存數據
8.13節點緩存使用技巧
第9章定時作業
9.1初始化作業執行器
9.2初始化作業處理器
9.2.1任務超時作業
9.2.2定時任務作業
9.2.3定時啟動流程實例作業
9.2.4其他作業
9.3作業執行器原理
9.3.1初始化作業執行器
9.3.2啟動作業執行器
9.4添加定時作業
9.5執行定時作業
9.6處理作業
9.6.1批量處理作業
9.6.2執行作業之異常處理
9.7關閉作業執行器
9.8自定義作業處理器
第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任務節點對象解析器
10.5.2創建ActivityImpl實例對象
10.5.3多實例對象解析
10.5.4連線對象解析
10.6PvmProcessElement類架構
10.7自定義對象解析器
10.7.1任務節點擴展屬性
10.7.2自定義任務節點對象解析器
10.7.3獲取自定義屬性
10.7.4運用自定義對象解析器
10.8流程虛擬機實戰
10.8.1獲取流程虛擬機對象
10.8.2入侵流程虛擬機
10.9操作連線表達式
10.9.1自動計算連線表達式
10.9.2獲取連線表達式
第11章監聽器原理
11.1監聽器生命周期
11.2內置記錄監聽器
11.2.1內置任務記錄監聽器
11.2.2內置執行記錄監聽器
11.3歷史解析器架構
11.3.1添加內置記錄監聽器
11.3.2初始化歷史解析器
11.3.3歷史節點結束通知
11.3.4控制歸檔歷史數據級別
11.3.5更新歷史數據
11.3.6歷史節點開始通知
11.4注入執行監聽器
11.5注入任務監聽器
11.6觸發執行監聽器
11.6.1class方式調度
11.6.2delegateExpression方式調度
11.6.3expression方式調度
11.6.4執行監聽器觸發入口
11.7觸發任務監聽器
11.8監聽器
11.8.1默認類
11.8.2自定義類
11.9自定義全局任務監聽器
11.10Activiti新特性之字段注射模式
第12章Activiti之設計模式
12.1命令模式說明
12.1.1命令模式的結構說明
12.1.2命令模式實戰
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創建命令上下文實例對象
12.5.5命令調度者攔截器
12.6自定義命令攔截器
12.7命令類調度入口
12.8Activiti事務
12.8.1MyBatis事務管理
12.8.2事務上下文架構
12.8.3事務上下文工廠類
12.8.4事務監聽器
12.8.5注冊同步事務
第13章流程虛擬機運轉
13.1流程實例運轉入口
13.2啟動流程實例命令類
13.2.1獲取ProcessDefinitionEntity實例對象
13.2.2重新生成流程定義緩存數據
13.3創建流程實例
13.3.1創建ExecutionEntity實例對象
13.3.2獲取dataObject
13.3.3區別流程實例與執行實例
13.3.4添加歷史流程實例數據
13.4虛擬機運轉原理
13.5AtomicOperation架構
13.6流程實例啟動
13.6.1非異步節點處理
13.6.2異步節點處理
13.7原子類流轉
13.7.1流程啟動原子類
13.7.2流程啟動準備原子類
13.7.3活動節點執行原子類
13.7.4開始節點行為類
13.7.5途經連線
13.7.6通知連線完成原子類
13.7.7連線銷毀原子類
13.7.8其他原子類
13.8Activiti新特性之忽略節點
第14章行為篇
14.1活動行為工廠類
14.1.1初始化活動行為工廠類
14.1.2活動行為類架構
14.2排他網關行為類原理
14.3擴展排他網關實戰
14.3.1自定義排他網關行為類
14.3.2自定義活動行為工廠類
14.3.3替換默認活動行為工廠類
14.4任務節點處理人多元化配置
14.4.1任務處理人擴展
14.4.2自定義任務解析器
14.4.3自定義任務行為類
14.4.4自定義活動行為工廠類
14.5忽略節點使用誤區
14.6修復Activiti忽略節點Bug
結構清晰。本書采用由淺入深、以點帶面,采用從整體到局部,再從局部放眼全局的視角,力求展示Activiti框架的全貌。1. 原理結合實戰。本書不甘心僅僅追求原理的講解,更希望通過原理延伸到實際項目開發中具體問題的解決,從而達到學以致用的目的。2. 通俗易懂。本書依然服務于廣大的Activiti初學者以及愛好者,盡量避免過于理論的描述方式,盡量做到少盲點、無盲點,從而更加“享受式”的學習,語言淺顯易懂卻不失專業。3. 技術。本書的講解涉及到了80%以上的源碼分析、并對框架級別的Bug和缺陷大膽假設,小心取證,從而對Activiti框架有一個、全新的認識。4. 代碼移植性高。本書的案例來自真實的企業級應用、代碼經過工業環境的驗證和實踐、可移植性強、可塑性高、力爭追求“小”而精悍。
即使是沖著內容而買,也會被這糟糕的紙質澆滅幾分熱情。紙張很薄泛黃通透,經不起折騰,沒有精裝書本的那種書墨香氣,氣味略微刺鼻。 如果這是正版的品質,那作者得多生氣。
剛出的新書,值得一看
很不錯,配套工作流的買更好
在工作中使用過Activiti,想完全了解其底層的運行原理
太需要一本研究activiti實現原理的書籍了。紙張差一點。