Activiti工作流學習之SpringBoot整合Activiti5.22.0實現在線設計器(二)
一、概述
網上有很多關於Eclipse、IDEA等IDE插件通過拖拽的方式來畫工作流程圖,個人覺得還是不夠好,所以花點時間研究了一下Activiti在線設計器,並與SpringBoot整合。
二、實現效果
三、實現過程
1.Activiti官網下載:https://www.activiti.org/get-started(我這里使用的是5.22.0版本)
解壓:activiti-5.22.0\wars\activiti-explorer,如下圖
2.設計器前端部分
僅保留一些靜態資源就行了,將這些文件放入項目的web目錄下。
在editor-app/app-cfg.js中配置一下項目url。這個url是編輯器相關的后台服務的url。(當然你也可以根據你的需求改動)
注:
①editor-app就是編輯器、modeler.html就是編輯器的入口頁面
②diagram-viewer是流程跟蹤插件
③界面組件:stencilset.json。本身是英文的,可以通過替換它來實現漢化的效果
3.設計器后端部分
下載Acitiviti源碼:https://github.com/Activiti/Activiti/releases/tag/activiti-5.22.0
①添加pom依賴
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-modeler</artifactId> <version>${activiti.version}</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-diagram-rest</artifactId> <version>${activiti.version}</version> </dependency>
②其中需要將modeler模塊的源代碼放到src中,因為需要在其中做部分修改,主要是url的映射。
其中有3個類,都是Controller:
①ModelSaveRestResource:#編輯器制圖之后,將節點信息以json的形式提交給這個Controller,然后由其進行持久化操作。(所在源碼位置:Activiti-activiti-5.22.0\modules\activiti-modeler\src\main\java\org\activiti\rest\editor\model)
②ModelEditorJsonRestResource:#根據modelId獲取model的節點信息,編輯器根據返回的json進行繪圖。(源碼所在位置:Activiti-activiti-5.22.0\modules\activiti-modeler\src\main\java\org\activiti\rest\editor\model)
③StencilsetRestResource #獲取編輯器組件及配置項信息(源碼所在位置:Activiti-activiti-5.22.0\modules\activiti-modeler\src\main\java\org\activiti\rest\editor\main)
需要修改的地方就三個,在每個Controller類上加上@RequestMapping注解,並指定值為"service"(對應前台app-cfg.js中配置的url)。
③主類添加掃描
④瀏覽器訪問:http://localhost/model-list.html
⑤繪畫HelloWorld業務流程圖
⑥首頁查看和部署
⑤通過SQLyog查看數據庫二進制表:剛剛繪制部署完成的二進制表已經存入數據庫
至此、SpringBoot整合Activiti在線設計器已經完成,大家有問題可以一起討論下,說不定你現在出現的問題就是我已經出現過的呢,哈,另外該代碼地址:https://github.com/Simple-Coder/springboot-activiti
在畫完流程圖並發布部署以后,接下來就是在實戰中使用SpringBoot項目結合Activiti實現員工請假的流程,如下:Activiti+Shiro實戰
參考:http://jmysql.com/activiti/126.html(如有侵權,請聯系刪除)