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