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.流程例項 終...