文章源碼託管:https://github.com/OUYANGSIHAI/Activiti-learninig 歡迎 star !!!html
Activiti5
是由Alfresco軟件在2010年5月17日發佈的業務流程管理(BPM)框架,它是覆蓋了業務流程管理、工做流、服務協做等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。Activiti基於Apache許可的開源BPM平臺,創始人Tom Baeyens是JBoss jBPM的項目架構師,它特點是提供了eclipse插件,開發人員能夠經過插件直接繪畫出業務流程圖。java
官網:http://www.activiti.org/git
目前,Activiti5中的5.22版本
是用的最多的一個版本,本次教程也是使用這個版本進行講解,最新版本到了7.0版本
。數據庫
在開始教程以前,咱們須要先明確下面的一些概念和知識,能夠幫助咱們更好的理解工做流的開發。微信
ProcessEngine
對象,這是Activiti工做的核心
。負責生成流程運行時的各類實例及數據、監控和管理流程的運行。架構
用百度更爲通俗的話來講就是:就是一輛汽車的發動機,就比如一輛汽車,外表作得再漂亮,若是發動機有問題就只是一個擺設。應用系統的彈性就比如引擎轉速方面的性能,加速到100 千米須要1 個小時(業務流程發生變更須要進行半年的程序修改)還能叫好車嗎?引擎動不動就熄火(程序由於邏輯的問題陷入死循環)的車還敢開嗎?框架
在Activiti工做流中用到了一個BPMN的文件,主要是用來描述業務流程的基本的符號,利用各個組件可以組成一個業務流程圖,整個業務也是根據這個圖來走的,其實用xml格式打開,就是一個xml文件
。eclipse
下面就是bpmn組件的示意圖 ide
在咱們進行業務流程開發的時候,是會產生不少的數據的,那麼這些數據都是放在哪裏呢?
是的,其實就是存放在數據庫的。
在Activiti工做流的後臺是有數據庫的支持的,全部的表都以ACT_開頭
,利用這些數據庫的表,就可以把整個業務流程的數據保存下來,而後利用這些數據進行不一樣的業務的開發。
數據庫表示意圖
下面對這些表作一些基本的解釋,這些能夠先不看,等看完後面的教程後再回過頭來看,你會發現其實很簡單的
。
1)act_re_deployment 部署信息表 2)act_re_model 流程設計模型部署表 3)act_re_procdef 流程定義數據表
1)act_ru_execution 運行時流程執行實例表 2)act_ru_identitylink 運行時流程人員表,主要存儲任務節點與參與者的相關信息 3)act_ru_task 運行時任務節點表 4)act_ru_variable 運行時流程變量數據表
1)act_hi_actinst 歷史節點表 2)act_hi_attachment 歷史附件表 3)act_hi_comment 歷史意見表 4)act_hi_identitylink 歷史流程人員表 5)act_hi_detail 歷史詳情表,提供歷史變量的查詢 6)act_hi_procinst 歷史流程實例表 7)act_hi_taskinst 歷史任務實例表 8)act_hi_varinst 歷史變量表
1)act_id_group 用戶組信息表 2)act_id_info 用戶擴展信息表 3)act_id_membership 用戶與用戶組對應信息表 4)act_id_user 用戶信息表
這些表用的不多,由於咱們通常會本身作一個權限管理,因此不會用activiti自身所帶的表。
1)act_ge_bytearray 二進制數據表 2)act_ge_property 屬性數據表存儲整個流程引擎級別的數據,初始化表結構時,會默認插入三條記錄。
這兩張表的數據是不可以隨意刪除的,刪除可能會出問題。
工做流的概念就先介紹這麼多了,更多的去官網查看,下一節將用一個入門的實例
來對工做流進行講解。
文章有不當之處,歡迎指正,若是喜歡微信閱讀,你也能夠關注個人微信公衆號:
好好學java
,獲取優質學習資源。