Activiti權威指南

Activiti權威指南 pdf epub mobi txt 电子书 下载 2025

冀正,張誌祥 著
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302474982
版次:1
商品编码:12222980
包装:平装
开本:16
出版时间:2017-07-01
用纸:胶版纸
页数:384
字数:612000

具体描述

內容簡介

本書旨在深入學習Activiti的內部處理機製。由淺入深、由易到難地對Activiti源碼展開瞭係統的講解和擴展,並對框架中的部分缺陷進行修正,從而使讀者可以更加靈活的運用和改造Activiti。
本書內容包括流程引擎配置類以及流程引擎類的內部實現機製、配置器的使用、流程引擎的管理、流程資源的部署以及內部實現機製、元素解析底層實現、自定義元素解析實戰、為任意節點無限擴展屬性、流程虛擬機的創建以及運行原理、原子類職責、事件轉發器、日誌監聽器以及日誌清洗器使用、修復Activiti部分Bug、自定義部署器實戰、對象解析器原理、監聽器的原理、事務、活動行為類以及活動行為工廠類、會話緩存的構造過程以及缺陷、自定義高並發id生成器、自定義變量類型、節點跳轉、會簽、加簽、退簽、會簽節點自定義權重實現、接管Activiti映射文件、擴展任務節點處理人多維度配置、自定義代辦SQL、接管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

14.7修復Activiti子流程業務鍵Bug

第15章Activiti存儲之MyBatis

15.1初始化dataSource

15.2Activiti數據訪問層關係分析

15.2.1實體類與數據庫錶的映射

15.2.2實例化SqlSessionFactory

15.3自定義Mapper實戰

15.3.1自定義Mapper

15.3.2自定義SQL執行原理

15.4SessionFactory

15.4.1初始化SessionFactory

15.4.2SessionFactory架構

15.5Session

15.5.1Session架構

15.5.2實例化方式創建Session實例

15.5.3反射方式創建Session實例

15.5.4實例化DbSqlSession

15.6SQL語句

15.6.1SQL語句適配器

15.6.2SQL執行id值生成規則

15.7數據層和數據的關係

15.7.1PersistentObject業務對象

15.7.2實體管理類

15.8添加會話緩存

15.9更新操作

15.9.1會話緩存方式更新

15.9.2SqlSession方式更新

15.10刪除操作

15.10.1DeleteOperation接口

15.10.2BulkDeleteOperation刪除數據

15.10.3CheckedDeleteOperation刪除數據

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.1id生成器初始化

16.1.2自增id生成器

16.1.3自定義主鍵生成器

16.2變量類型

16.2.1初始化變量管理類

16.2.2變量管理類架構

16.2.3變量處理類

16.2.4自定義變量處理類

16.3ServiceLoader方式注入配置器

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實體管理類


前言/序言



前言




創作背景
對於OA內部辦公係統、ERP係統、審批係統等經常需要大量的使用工作流,而Activiti框架可以更好地輔助開發人員解決實際工作中遇到的流程問題,因此Activiti的重要性不言而喻。
很多朋友在實際項目開發中意識到瞭Activiti的重要性,也看瞭相關的書籍和資料,但是常聽到這樣的抱怨Activiti的書我看瞭不少,覺得看懂瞭,但就是不知道如何更好地擴展以及改造Activiti,更不知道如何對其進行性能優化,達不到技術解決實際需求。
其實不難看齣,造成這樣的情況歸根結底在於:這些朋友對於Activiti缺少架構方麵的瞭解,缺少底層實現細節的認識,認為隻使用Activiti提供的API就足夠項目開發瞭,其實還差得很遠,並沒有從更高層次來理解和認識Activiti,沒有“真正”讓Activiti框架開足馬力來為項目服務。正所謂瞭解其本質,掌握其原理纔能更好地讓Activiti框架為自身項目服務,而不是成為項目中的黑匣子、絆腳石。
市麵上及網絡上有不少Activiti方麵的書籍,但對於一般的開發朋友而言,要麼太深,不能撥雲見日,要麼太淺,看瞭跟沒看沒有什麼區彆,再次遇到類似的問題還是無從下手,其根本原因還是講得太淺、不成係統,與企業開發脫軌。
對於所有想要深入學習Activiti框架的朋友,其實需要類似這樣的書籍。
■講解深入淺齣、淺顯易懂。
■實例來自實際的企業級項目開發,而不是來自虛擬的場景。
■對於Activiti框架提供的功能,在開發過程中覺得部分功能不太好,可以靈活地擴展框架。
■深入講解Activiti的內部實現機製以及運行原理。
■一本“乾貨”書。
這也是本書創建的目的,授人於魚不如授之於漁,希望能夠幫助更多的朋友更好地閤理運用、擴展以及優化Activiti,而不是僅僅局限於使用框架提供的API。因為會用僅僅是入門而已,精通則是另一個層麵的問題。
有過多年的開發經驗以及一年的沉澱和準備最終成書,我們可以這樣說:這是一本深入講解Activiti的書,這是一本乾貨書,不僅有源碼的講解,還有基於源碼講解基礎之上的實戰講解,這是一本誠意十足的書,這是一本深入講解Activiti內核的書,這是一本真正的企業級實戰書,敬請您研磨、品評鑒定。
本書的試讀人員包括:在校大學生,1~10年的工作人員,職位覆蓋中高級程序員、項目經理、係統架構師、總監、技術部經理和總經理等。
試讀結果反饋:工作2年以下的開發人員,基本上都可以看明白,還需要認真研磨和消化吸收; 工作2~5年的朋友,原來Activiti還可以這樣用,真是滿滿的乾貨,達到瞭本書寫作的目的和意圖; 工作5~8年的朋友,可以藉鑒Activiti中的設計思想並運用到實際項目開發中; 工作8~10年的朋友,這不僅是一本講解如何使用Activiti的書,還講解瞭Activiti框架的技術選型和架構思想的書,一本物有所值、貨真價實的書。
本書體係結構
本書旨在深入學習Activiti的內部處理機製。由淺入深、由易到難地對Activiti源碼展開係統地講解和擴展,並對框架中的部分缺陷進行修正,從而可以使讀者更加靈活地運用和改造Activiti。
第1章介紹Activiti環境搭建、設計器的安裝、源碼的獲取和編譯。
第2章詳細講解流程配置文件的創建方式,流程引擎的架構、流程引擎配置類和流程引擎的創建內部實現機製,配置器的使用以及注意事項,流程引擎的管理以及流程引擎生命周期監聽器的使用。
第3章講解流程資源的部署、各種部署方式以及BpmnModel與流程文檔之間的轉換和格式校驗。
第4章濃墨重彩地講解流程文檔解析原理和架構思想,包括文檔轉換器、流程元素解析、外圍元素解析、根元素解析、流程元素解析、擴展元素解析、子元素解析、連綫元素、黑名單機製以及元素解析器的架構設計。
第5章詳細講解自定義元素的解析,包括自定義元素的解析原理、自定義元素的存儲、黑名單元素以及非黑名單元素解析實戰。
第6章介紹事件轉發器的內部實現機製,包括事件轉發器的初始化、架構、注冊方式,日誌監聽器的使用和擴展,日誌清洗器的架構和自定義日誌清洗器的使用。
第7章深入剖析流程文檔部署的內部實現機製,包括內置部署器的使用、部署命令以及自定義部署器實戰。
第8章講解流程定義緩存的使用,包括自定義緩存處理類、節點緩存(新特性)的使用和Bug修復,以及配置器的高級使用技巧從而可以使流程信息徹底動態化。
第9章講解定時器的使用、運行原理以及自定義作業處理器實戰。
第10章講解流程虛擬機的內部處理機製,包括對象解析器架構、自定義對象解析器、無縫入侵虛擬機以及操作錶達式。
第11章講解監聽器原理,包括監聽器的生命周期,內置記錄監聽器,曆史解析器的架構設計,監聽器的觸發時機和監聽器代理類、自定義全局監聽器的實現和字段注射模式(新特性)。
第12章講解Activiti中使用的命令模式,包括職責鏈模式,事務處理、事務上下文、事務監聽器以及同步事務。
第13章講解流程虛擬機運轉的整個過程以及各種原子類的功能邊界和職責,包括異步與非異步節點處理和忽略節點功能。
第14章講解各種活動行為類的原理,包括排他網關行為類、自定義行為類,任務節點處理人多元化、多維度的處理,忽略節點使用誤區以及Bug修復、子流程業務鍵Bug修復。
第15章講解MyBatis框架在Activiti中的使用,包括初始化數據源、數據訪問層關係分析,自定義Mapper實戰,Session架構、SessionFactory架構,SQL語句適配器、SQL執行id值生成規則,實體管理類,樂觀鎖,會話緩存的構建以及刷新過程。
第16章實現高並發id生成器,講解瞭變量類型的原理以及自定義變量處理類、ServiceLoader方式注入配置器,任務的認領、歸還、代理任務、會簽的實現(加簽、退簽和減簽),節點跳轉(常規節點、分支節點和會簽節點),會簽自定義權重實戰,接管Activiti(映射文件、自定義部門實現、擴展任務節點參與者錶和自定義代辦SQL),接管實體管理類。
本書約定
本書在講述過程中,有如下約定:
�r 引擎與流程引擎是等價的。
�r 如無特殊說明,文檔均指流程文檔。
�r 虛擬機默認指的是流程虛擬機
�r 本書的程序、實例均在JDK1.6中運行,使用的數據庫為MySQL。
聯係作者
本書的創作過程中可謂異常艱辛,由於Activiti內容涵蓋麵比較廣泛,涉及的知識點非常之多,再加上Activiti框架中自身的一些缺陷和Bug,因此為瞭能夠讓全書更加清楚、更加準確地闡述,筆者經曆瞭許多不眠之夜。由於寫作水平有限,本書不足之處在所難免,望讀者諒解。更期待各界高手、專傢就不足之處賜教。
為此,如果讀者有任何的疑問或者建議,非常歡迎大傢加入QQ群129123599,一起探討學習。我期待與大傢一起交流學習、共同進步。同時也希望大傢可以關注我的博客:http://www.shareniu.com/。
真誠緻謝
創作的過程是痛苦的,持續的時間也遠遠超乎我的預期,本以為自己對Activiti已經瞭如指掌,但在寫作的過程中還是會遇到各種各樣的問題,幸運的是自己咬牙堅持下來瞭。
首先要感謝清華大學齣版社的員工,本書的策劃編輯,他們是我見過的最好的齣版人,對本書從選題到齣版的各個環節,都給予大量的指導和幫助,這對我的一生都有幫助。
其次要感謝我的妻子,一個産品經理,從産品的角度來讓本書內容的層次感更加的清晰和人性化。她始終不辭辛勞,毫無怨言地對我照顧有加,纔能我有更多的時間用來創作。
然後要感謝鄭州輕工業學院張誌鋒教授、靳喜軍、曾維林、李誌、寇成星、張霞等在整個編寫過程中給予的支持和幫助。
接下來,感謝傢人、感謝朋友、感謝北京的明媚陽光和漫天風沙以及熙熙攘攘的迴龍觀,總之感謝一切。
最後,提前感謝購買本書的朋友們,您的支持信任是我們繼續前進的動力。
冀正
2017年5月



用户评价

评分

专业必备,非常有用,对学习有一定的帮助

评分

不错,书的内容很好,是我想要的

评分

基本搬源码,实用性不强。

评分

包装精美,内容丰富,学习必备

评分

东西还不错。。。。。。。

评分

适合对activiti有一定了解和使用过的人看,用来深入学习不错

评分

一直期待这方面的技术书,明年主攻技术!

评分

帮朋友买的书,内容质量杠杠的

评分

不错,正版就是好,要是便宜点就更好了

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有