flowable工作流原始碼解析 DB訪問

2021-10-06 07:23:31 字數 1633 閱讀 1599

flowable用了mybatis元件,又實現了自己的command和interceptor機制。具體是怎麼實現的呢?

我們以deployment操作為例,來看看它的呼叫鏈

呼叫端是service介面, 它委託自己的commandexecutor去執行具體的command. command最終會呼叫到entitymanager,然後委託給ibatis的sqlsession來完成操作。

其中commandexcutor呼叫command的地方有些複雜,我們展開看:

commandexecutor會維護一系列的interceptor, 這些interceptor會包含著最終的command物件,在其前後做一些操作:比如日誌,事務,flush等。command物件會呼叫dbsqlsession將insert,update,delete操作儲存到列表裡,最終的入庫時點是在commandcontextinterceptor執行完畢時,會去flush。

entitymanager也是db模組中比較複雜的部分,其類圖如下:

其中mybatisdeploymentdatamanager是最終實現類,它將具體操作委託給了ibatis的sqlsession類執行。

public class mybatisdeploymentdatamanager extends abstractprocessdatamanagerimplements deploymentdatamanager 

@override

public class extends deploymententity> getmanagedentityclass()

@override

public deploymententity create()

@override

public long finddeploymentcountbyquerycriteria(deploymentqueryimpl deploymentquery)

@override

@suppresswarnings("unchecked")

public listfinddeploymentsbyquerycriteria(deploymentqueryimpl deploymentquery)

@override

public listgetdeploymentresourcenames(string deploymentid)

@override

@suppresswarnings("unchecked")

public listfinddeploymentsbynativequery(mapparametermap)

@override

public long finddeploymentcountbynativequery(mapparametermap)

}

Flowable 工作流基礎使用

學習 這裡是整工作流引擎的使用視窗工具。1.peocessengine 這個類是 flowable 工作流的執行引擎,後續所有的子工具使用都是從這個類出發構建的。2.repositoryservice 可以想象成所有的執行流程圖都是存放在這個類的倉庫裡的。只有一張圖在那裡工作流是肯定不能開始扭轉的,...

flowable工作流子流程呼叫

flowable工作流子流程介紹 工作流提供了子流程的呼叫,一種是內部子流程,可以讓使用者主要看主流程,保持業務清晰,另一種是引用外部子流程 call activity 復用外部流程功能。工作中有用到flowable 6.5.06版本。bpmn檔案 測試子流程 流程圖 單元測試類 title des...

工作流Flowable實戰篇

二 高階篇 一 基礎篇 1.流程demo案例 2.流程模板匯入 3.流程模板部署 4.流程的模板的和xml顯示 5.流程定義的掛起與啟用 6.流程定義的刪除 7.流程定義檢視流程圖和xml 8.流程例項的啟動 9.流程例項掛起與啟用 10.流程例項的刪除 11.流程例項 跟蹤流程 12.流程例項 終...