概述介紹
最近公司有個大項目需要用到流程引擎平臺。服務治理平臺中要提供流程治理服務,所以小編在加緊學習工作流引擎的開發。 所以即將學習的是一個業務流程管理框架, 常見開源工作流引擎框架 :OSWorkFlow、jBPM(jboss business process management),Activiti工作流(是對jBPM升級)。流程開發框架一般我們稱作爲工作流框架.
爲什麼推薦使用activit這個框架?
activit它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。Activiti基於Apache許可的開源BPM平臺,創始人Tom Baeyens是JBoss jBPM的項目架構師,它特色是提供了eclipse插件,開發人員可以通過插件直接繪畫出業務。另外我覺得它比JBPM相對來說好的一點就是:再簡單,開發難度減低了。
技術框架-開發環境
- 語言:Java 8
- IDE(JAVA):IDEA / Eclipse安裝activit插件
- IDE(前端):WebStorm 或者 IDEA
- 依賴管理:Maven
- 數據庫:MySQL5.7
第一個例子
源碼下載地址,複製下載即可
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
/**
* 第一個流程運行類
*/
public class First {
public static void main(String[] args) {
// 創建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到流程存儲服務組件
RepositoryService repositoryService = engine.getRepositoryService();
// 得到運行時服務組件
RuntimeService runtimeService = engine.getRuntimeService();
// 獲取流程任務組件
TaskService taskService = engine.getTaskService();
// 部署流程文件
repositoryService.createDeployment().addClasspathResource("bpmn/First.bpmn").deploy();
// 啓動流程
runtimeService.startProcessInstanceByKey("process1");
// 查詢第一個任務
Task task = taskService.createTaskQuery().singleResult();
System.out.println("第一個任務完成前,當前任務名稱:" + task.getName());
// 完成第一個任務
taskService.complete(task.getId());
// 查詢第二個任務
task = taskService.createTaskQuery().singleResult();
System.out.println("第二個任務完成前,當前任務名稱:" + task.getName());
// 完成第二個任務(流程結束)
taskService.complete(task.getId());
task = taskService.createTaskQuery().singleResult();
System.out.println("流程結束後,查找任務:" + task);
// 退出
System.exit(0);
}
}
總結
總結:使用activit,首先創建流程引擎, 得到流程存儲服務組件,得到運行時服務組件,部署流程文件並啓動流程。
這個例子比較簡單,大家別笑話。
掃碼關注
(公衆號)
(微信)
免責聲明
【寫作說明】以上內容分享給喜歡編程,有夢想的程序員,希望能幫助到你們。以上文章屬於此公衆號原創所有,如需轉載請註明出處。
【免責申明】本公衆平臺不是廣告商,也沒有爲其他三方網站或者個人做廣告宣傳。此分享的源代碼和文章是小編在項目中、學習中整理的一些認爲不錯的項目。用戶產生的一些自願下載或者付費行爲。與平臺沒有直接關係
【投稿郵箱】[email protected]
歡迎投稿分享你的優質源碼或文章