- Activiti權(quán)威指南
- 冀正
- 2856字
- 2020-11-28 15:59:51
前言
創(chuàng)作背景
對(duì)于OA內(nèi)部辦公系統(tǒng)、ERP系統(tǒng)、審批系統(tǒng)等經(jīng)常需要大量的使用工作流,而Activiti框架可以更好地輔助開發(fā)人員解決實(shí)際工作中遇到的流程問題,因此Activiti的重要性不言而喻。
很多朋友在實(shí)際項(xiàng)目開發(fā)中意識(shí)到了Activiti的重要性,也看了相關(guān)的書籍和資料,但是常聽到這樣的抱怨Activiti的書我看了不少,覺得看懂了,但就是不知道如何更好地?cái)U(kuò)展以及改造Activiti,更不知道如何對(duì)其進(jìn)行性能優(yōu)化,達(dá)不到技術(shù)解決實(shí)際需求。
其實(shí)不難看出,造成這樣的情況歸根結(jié)底在于:這些朋友對(duì)于Activiti缺少架構(gòu)方面的了解,缺少底層實(shí)現(xiàn)細(xì)節(jié)的認(rèn)識(shí),認(rèn)為只使用Activiti提供的API就足夠項(xiàng)目開發(fā)了,其實(shí)還差得很遠(yuǎn),并沒有從更高層次來理解和認(rèn)識(shí)Activiti,沒有“真正”讓Activiti框架開足馬力來為項(xiàng)目服務(wù)。正所謂了解其本質(zhì),掌握其原理才能更好地讓Activiti框架為自身項(xiàng)目服務(wù),而不是成為項(xiàng)目中的黑匣子、絆腳石。
市面上及網(wǎng)絡(luò)上有不少Activiti方面的書籍,但對(duì)于一般的開發(fā)朋友而言,要么太深,不能撥云見日,要么太淺,看了跟沒看沒有什么區(qū)別,再次遇到類似的問題還是無從下手,其根本原因還是講得太淺、不成系統(tǒng),與企業(yè)開發(fā)脫軌。
對(duì)于所有想要深入學(xué)習(xí)Activiti框架的朋友,其實(shí)需要類似這樣的書籍。
■ 講解深入淺出、淺顯易懂。
■ 實(shí)例來自實(shí)際的企業(yè)級(jí)項(xiàng)目開發(fā),而不是來自虛擬的場景。
■ 對(duì)于Activiti框架提供的功能,在開發(fā)過程中覺得部分功能不太好,可以靈活地?cái)U(kuò)展框架。
■ 深入講解Activiti的內(nèi)部實(shí)現(xiàn)機(jī)制以及運(yùn)行原理。
■ 一本“干貨”書。
這也是本書創(chuàng)建的目的,授人于魚不如授之于漁,希望能夠幫助更多的朋友更好地合理運(yùn)用、擴(kuò)展以及優(yōu)化Activiti,而不是僅僅局限于使用框架提供的API。因?yàn)闀?huì)用僅僅是入門而已,精通則是另一個(gè)層面的問題。
有過多年的開發(fā)經(jīng)驗(yàn)以及一年的沉淀和準(zhǔn)備最終成書,我們可以這樣說:這是一本深入講解Activiti的書,這是一本干貨書,不僅有源碼的講解,還有基于源碼講解基礎(chǔ)之上的實(shí)戰(zhàn)講解,這是一本誠意十足的書,這是一本深入講解Activiti內(nèi)核的書,這是一本真正的企業(yè)級(jí)實(shí)戰(zhàn)書,敬請(qǐng)您研磨、品評(píng)鑒定。
本書的試讀人員包括:在校大學(xué)生,1~10年的工作人員,職位覆蓋中高級(jí)程序員、項(xiàng)目經(jīng)理、系統(tǒng)架構(gòu)師、總監(jiān)、技術(shù)部經(jīng)理和總經(jīng)理等。
試讀結(jié)果反饋:工作2年以下的開發(fā)人員,基本上都可以看明白,還需要認(rèn)真研磨和消化吸收;工作2~5年的朋友,原來Activiti還可以這樣用,真是滿滿的干貨,達(dá)到了本書寫作的目的和意圖;工作5~8年的朋友,可以借鑒Activiti中的設(shè)計(jì)思想并運(yùn)用到實(shí)際項(xiàng)目開發(fā)中;工作8~10年的朋友,這不僅是一本講解如何使用Activiti的書,還講解了Activiti框架的技術(shù)選型和架構(gòu)思想的書,一本物有所值、貨真價(jià)實(shí)的書。
本書體系結(jié)構(gòu)
本書旨在深入學(xué)習(xí)Activiti的內(nèi)部處理機(jī)制。由淺入深、由易到難地對(duì)Activiti源碼展開系統(tǒng)地講解和擴(kuò)展,并對(duì)框架中的部分缺陷進(jìn)行修正,從而可以使讀者更加靈活地運(yùn)用和改造Activiti。
第1章 介紹Activiti環(huán)境搭建、設(shè)計(jì)器的安裝、源碼的獲取和編譯。
第2章 詳細(xì)講解流程配置文件的創(chuàng)建方式,流程引擎的架構(gòu)、流程引擎配置類和流程引擎的創(chuàng)建內(nèi)部實(shí)現(xiàn)機(jī)制,配置器的使用以及注意事項(xiàng),流程引擎的管理以及流程引擎生命周期監(jiān)聽器的使用。
第3章 講解流程資源的部署、各種部署方式以及BpmnModel與流程文檔之間的轉(zhuǎn)換和格式校驗(yàn)。
第4章 濃墨重彩地講解流程文檔解析原理和架構(gòu)思想,包括文檔轉(zhuǎn)換器、流程元素解析、外圍元素解析、根元素解析、流程元素解析、擴(kuò)展元素解析、子元素解析、連線元素、黑名單機(jī)制以及元素解析器的架構(gòu)設(shè)計(jì)。
第5章 詳細(xì)講解自定義元素的解析,包括自定義元素的解析原理、自定義元素的存儲(chǔ)、黑名單元素以及非黑名單元素解析實(shí)戰(zhàn)。
第6章 介紹事件轉(zhuǎn)發(fā)器的內(nèi)部實(shí)現(xiàn)機(jī)制,包括事件轉(zhuǎn)發(fā)器的初始化、架構(gòu)、注冊(cè)方式,日志監(jiān)聽器的使用和擴(kuò)展,日志清洗器的架構(gòu)和自定義日志清洗器的使用。
第7章 深入剖析流程文檔部署的內(nèi)部實(shí)現(xiàn)機(jī)制,包括內(nèi)置部署器的使用、部署命令以及自定義部署器實(shí)戰(zhàn)。
第8章 講解流程定義緩存的使用,包括自定義緩存處理類、節(jié)點(diǎn)緩存(新特性)的使用和Bug修復(fù),以及配置器的高級(jí)使用技巧從而可以使流程信息徹底動(dòng)態(tài)化。
第9章 講解定時(shí)器的使用、運(yùn)行原理以及自定義作業(yè)處理器實(shí)戰(zhàn)。
第10章 講解流程虛擬機(jī)的內(nèi)部處理機(jī)制,包括對(duì)象解析器架構(gòu)、自定義對(duì)象解析器、無縫入侵虛擬機(jī)以及操作表達(dá)式。
第11章 講解監(jiān)聽器原理,包括監(jiān)聽器的生命周期,內(nèi)置記錄監(jiān)聽器,歷史解析器的架構(gòu)設(shè)計(jì),監(jiān)聽器的觸發(fā)時(shí)機(jī)和監(jiān)聽器代理類、自定義全局監(jiān)聽器的實(shí)現(xiàn)和字段注射模式(新特性)。
第12章 講解Activiti中使用的命令模式,包括職責(zé)鏈模式,事務(wù)處理、事務(wù)上下文、事務(wù)監(jiān)聽器以及同步事務(wù)。
第13章 講解流程虛擬機(jī)運(yùn)轉(zhuǎn)的整個(gè)過程以及各種原子類的功能邊界和職責(zé),包括異步與非異步節(jié)點(diǎn)處理和忽略節(jié)點(diǎn)功能。
第14章 講解各種活動(dòng)行為類的原理,包括排他網(wǎng)關(guān)行為類、自定義行為類,任務(wù)節(jié)點(diǎn)處理人多元化、多維度的處理,忽略節(jié)點(diǎn)使用誤區(qū)以及Bug修復(fù)、子流程業(yè)務(wù)鍵Bug修復(fù)。
第15章 講解MyBatis框架在Activiti中的使用,包括初始化數(shù)據(jù)源、數(shù)據(jù)訪問層關(guān)系分析,自定義Mapper實(shí)戰(zhàn),Session架構(gòu)、SessionFactory架構(gòu),SQL語句適配器、SQL執(zhí)行id值生成規(guī)則,實(shí)體管理類,樂觀鎖,會(huì)話緩存的構(gòu)建以及刷新過程。
第16章 實(shí)現(xiàn)高并發(fā)id生成器,講解了變量類型的原理以及自定義變量處理類、ServiceLoader方式注入配置器,任務(wù)的認(rèn)領(lǐng)、歸還、代理任務(wù)、會(huì)簽的實(shí)現(xiàn)(加簽、退簽和減簽),節(jié)點(diǎn)跳轉(zhuǎn)(常規(guī)節(jié)點(diǎn)、分支節(jié)點(diǎn)和會(huì)簽節(jié)點(diǎn)),會(huì)簽自定義權(quán)重實(shí)戰(zhàn),接管Activiti(映射文件、自定義部門實(shí)現(xiàn)、擴(kuò)展任務(wù)節(jié)點(diǎn)參與者表和自定義代辦SQL),接管實(shí)體管理類。
本書約定
本書在講述過程中,有如下約定:
? 引擎與流程引擎是等價(jià)的。
? 如無特殊說明,文檔均指流程文檔。
? 虛擬機(jī)默認(rèn)指的是流程虛擬機(jī)
? 本書的程序、實(shí)例均在JDK1.6中運(yùn)行,使用的數(shù)據(jù)庫為MySQL。
聯(lián)系作者
本書的創(chuàng)作過程中可謂異常艱辛,由于Activiti內(nèi)容涵蓋面比較廣泛,涉及的知識(shí)點(diǎn)非常之多,再加上Activiti框架中自身的一些缺陷和Bug,因此為了能夠讓全書更加清楚、更加準(zhǔn)確地闡述,筆者經(jīng)歷了許多不眠之夜。由于寫作水平有限,本書不足之處在所難免,望讀者諒解。更期待各界高手、專家就不足之處賜教。
為此,如果讀者有任何的疑問或者建議,非常歡迎大家加入QQ群475458061,一起探討學(xué)習(xí)。我期待與大家一起交流學(xué)習(xí)、共同進(jìn)步。同時(shí)也希望大家可以關(guān)注我的博客:http://www.shareniu.com/。
真誠致謝
創(chuàng)作的過程是痛苦的,持續(xù)的時(shí)間也遠(yuǎn)遠(yuǎn)超乎我的預(yù)期,本以為自己對(duì)Activiti已經(jīng)了如指掌,但在寫作的過程中還是會(huì)遇到各種各樣的問題,幸運(yùn)的是自己咬牙堅(jiān)持下來了。
首先要感謝清華大學(xué)出版社的員工,本書的策劃編輯,他們是我見過的最好的出版人,對(duì)本書從選題到出版的各個(gè)環(huán)節(jié),都給予大量的指導(dǎo)和幫助,這對(duì)我的一生都有幫助。
其次要感謝我的妻子,一個(gè)產(chǎn)品經(jīng)理,從產(chǎn)品的角度來讓本書內(nèi)容的層次感更加的清晰和人性化。她始終不辭辛勞,毫無怨言地對(duì)我照顧有加,才能我有更多的時(shí)間用來創(chuàng)作。
然后要感謝鄭州輕工業(yè)學(xué)院張志鋒教授、靳喜軍、曾維林、李志、寇成星、張霞等在整個(gè)編寫過程中給予的支持和幫助。
接下來,感謝家人、感謝朋友、感謝北京的明媚陽光和漫天風(fēng)沙以及熙熙攘攘的回龍觀,總之感謝一切。
最后,提前感謝購買本書的朋友們,您的支持信任是我們繼續(xù)前進(jìn)的動(dòng)力。
冀正
2017年5月
- C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第三版)
- Learning Scala Programming
- Android Wearable Programming
- Scala Design Patterns
- OpenCV for Secret Agents
- Oracle 12c中文版數(shù)據(jù)庫管理、應(yīng)用與開發(fā)實(shí)踐教程 (清華電腦學(xué)堂)
- Python機(jī)器學(xué)習(xí)編程與實(shí)戰(zhàn)
- Advanced Oracle PL/SQL Developer's Guide(Second Edition)
- 劍指MySQL:架構(gòu)、調(diào)優(yōu)與運(yùn)維
- Visual Basic程序設(shè)計(jì)實(shí)踐教程
- Apache Spark 2.x for Java Developers
- Tableau 10 Bootcamp
- Learning Hadoop 2
- INSTANT Silverlight 5 Animation
- Mudbox 2013 Cookbook