作者簡介編輯 播報
冀正 資深Java技術專家,長期從事Java軟件開發工作,對Java程序設計、JVM、工作流(Activiti、Flowable)有深入的研究,對設計模式、大數據等技術有濃厚的興趣,擅長系統的性能優化以及底層設計,多年的開發積累了豐富的經驗,撰寫了大量的工作流相關技術文章,深受讀者的好評和追随。多年來一直從事OA、ERP、金融等系統的開發與架構設計工作,持續關注并深入研究工作流引擎。
目錄編輯 播報
前言
1. 環境搭建
1.1 環境搭建
1.1.1 安裝GitHub
1.1.2 安裝Maven
1.2 編譯源碼
1.3 源碼目錄說明
1.4 安裝流程設計器
1.5 工程搭建
2. 探險流程引擎
2.1 流程配置文件
2.1.1 Activiti配置風格
2.1.2 Spring配置風格
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.1 ProcessEngineConfiguration類創建引擎
2.9.2 編程方式創建引擎
3. 初識流程資源部署
3.1 流程資源概述
3.1.1 流程文檔部署生命周期
3.1.2 DeploymentBuilder核心類
3.2 流程文檔部署
3.2.1 定義流程文檔
3.2.2 文本方式部署
3.2.3 classpath資源部署
3.2.4 流式部署
3.3 BpmnModel方式部署
3.4 校驗BpmnModel實例對象
3.5 BpmnModel轉換流程文檔
3.6 流程文檔轉換BpmnModel
3.7 使用建議
4. 流程文檔解析原理
4.1 文檔解析基礎
4.1.1 文檔解析模型
4.1.2 Activiti文檔解析技術選型演變
4.1.3 文檔解析實戰
4.2 元素解析功能架構設計
4.2.1 BPMN2.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.4.6 獲取元素坐标
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.3 Bpmn部署器
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.7 Activiti新特性之節點緩存
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.5.1 查詢作業
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.4 BpmnParseHandler架構
10.3.5 對象解析器架構
10.4 流程對象解析入口
10.5 流程子元素對象解析入口
10.5.1 任務節點對象解析器
10.5.2 創建ActivityImpl實例對象
10.5.3 多實例對象解析
10.5.4 連線對象解析
10.6 PvmProcessElement類架構
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.4.1 創建執行監聽器
11.5 注入任務監聽器
11.6 觸發執行監聽器
11.6.1 class方式調度
11.6.2 delegateExpression方式調度
11.6.3 expression方式調度
11.6.4 執行監聽器觸發入口
11.7 觸發任務監聽器
11.8 監聽器代理
11.8.1 默認代理類
11.8.2 自定義代理類
11.9 自定義全局任務監聽器
11.10 Activiti新特性之字段注射模式
12. Activiti之設計模式
12.1.1 命令模式的結構說明
12.1.2 命令模式實戰
12.2 Activiti命令模式
12.2.1 初始化命令配置類
12.2.2 Activiti事務傳播行爲
12.2.3 Spring事務攔截器
12.2.4 初始化命令調度者
12.2.5 初始化命令上下文工廠
12.2.6 初始化命令攔截器
12.3 Activiti職責鏈模式
12.4 命令相關類職責
12.5 命令攔截器
12.5.1 日志攔截器
12.5.2 命令上下文攔截器
12.5.3 上下文類
12.5.4 創建命令上下文實例對象
12.5.5 命令調度者攔截器
12.6 自定義命令攔截器
12.7 命令類調度入口
12.8 Activiti事務
12.8.1 MyBatis事務管理
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.5 AtomicOperation架構
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.8 Activiti新特性之忽略節點
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
14.7 修複Activiti子流程業務鍵Bug
15. Activiti存儲之MyBatis
15.1 初始化dataSource
15.2 Activiti數據訪問層關系分析
15.2.1 實體類與數據庫的映射
15.2.2 實例化SqlSessionFactory
15.3 自定義Mapper實戰
15.3.1 自定義Mapper
15.3.2 自定義SQL執行原理
15.4 SessionFactory
15.4.1 初始化SessionFactory
15.4.2 SessionFactory架構
15.5 Session
15.5.1 Session架構
15.5.2 實例化方式創建Session實例
15.5.3 反射方式創建Session實例
15.5.4 實例化DbSqlSession
15.6 SQL語句
15.6.1 SQL語句适配器
15.6.2 SQL執行id值生成規則
15.7 數據層和數據的關系
15.7.1 PersistentObject業務對象
15.7.2 實體管理類
15.8 添加會話緩存
15.9 更新操作
15.9.1 會話緩存方式更新
15.9.2 SqlSession方式更新
15.10 删除操作
15.10.1 DeleteOperation接口
15.10.2 BulkDeleteOperation删除數據
15.10.3 CheckedDeleteOperation删除數據
15.10.4 樂觀鎖
15.11 刷新會話緩存入口
15.12 會話緩存數據持久化
15.12.1 移除不必要數據
15.12.2 刷新序列化變量
15.12.3 獲取更新對象
15.12.4 刷新數據
15.12.5 解決依賴數據插入先後順序
15.12.6 性能優化
16. 實戰
16.1 高并發id生成器
16.1.1 id生成器初始化
16.1.2 自增id生成器
16.1.3 自定義主鍵生成器
16.2 變量類型
16.2.1 初始化變量管理類
16.2.2 變量管理類架構
16.2.3 變量處理類
16.2.4 自定義變量處理類
16.3 ServiceLoader方式注入配置器
16.4 節點跳轉
16.4.1 常規節點跳轉
16.4.2 分支節點跳轉
16.4.3 多實例節點跳轉
16.5 會簽
16.5.1 串行多實例
16.5.2 認領和歸還任務
16.5.3 代理任務
16.5.4 并行多實例
16.5.5 加簽
16.5.6 減簽和退簽
16.6 會簽節點自定義權重實現
16.6.1 定義處理人權重
16.6.2 獲取權重信息并自動計算
16.6.3 優化建議
16.7 接管Activiti
16.7.1 接管Activiti映射文件
16.7.2 禁用用戶表和組表
16.7.3 自定義用戶角色和部門表
16.7.4 擴展任務節點參與者表
16.7.5 自定義任務節點參與者命令類
16.7.6 流程文檔支持設置部門屬性
16.7.7 解析及運用流程文檔部門屬性
16.7.8 自定義代辦SQL
16.8 接管Activiti實體管理類
下載說明:
1、如遇購買或下載問題,請聯系在線客服 ;2、本站資源來源于互聯網,未測試源碼不保證100%能部署,不包含技術支持,請酌情下載;
3、本站不售賣代碼,所有發布的文章以及附件僅限用于學習和研究目的;不得用于商業或者非法用途;如果您喜歡該程序,請支持正版軟件,購買注冊,得到更好的正版服務。否則由此産生的法律後果,本站概不負責!
4、本站收益用于平台服務器、雲存儲CDN、人力等網站運營成本,支持本站請訂閱本站會員,您的支持是我們更新内容的最大動力!
原文鏈接:https://www.xmbcode.com/guide/doc/192/,轉載請注明出處。