真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBoot中使用activiti的方法教程(一)

前言

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)株洲免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

Activiti API是一個工作流程(workflow)和業(yè)務(wù)流程管理(BPM)系統(tǒng),可以定義流程、執(zhí)行流程并以不同方式對其實現(xiàn)運行。使用API​​的開發(fā)可以在任何IDE中完成,但是要使用Activiti Designer需要Eclipse,IDEA中使用actiBPM插件。

定義流程有幾種方式:

1. 使用BPMN 2.0標(biāo)準(zhǔn)在定義一個流程XML。

2. 使用StartEvent,EndEvent,UserTask,SequenceFlow等Java類。

如果我們想要運行進程或訪問任何服務(wù),需要首先創(chuàng)建ProcessEngineConfiguration。也就是說,ProcessEngineConfiguration是使用Activiti API的起始之點,使用這個類也可獲得流程引擎,然后就可以執(zhí)行工作流和BPMN操作了。

Maven依賴:


 org.activiti
 activiti-spring-boot-starter-basic
 6.0.0



 org.activiti
 activiti-spring-boot-starter-security
 6.0.0

首先,我們需要配置ProcessEngineConfiguration連接到數(shù)據(jù)庫,常使用XML文件activiti.cfg.xml進行配置:



 
 
 
 

 

我們可以得到使用ProcessEngines類獲得流程引擎了:

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

調(diào)用這條語句將尋找類路徑中activiti.cfg.xml文件,并根據(jù)文件中的配置構(gòu)造ProcessEngine。

比如我們可以在測試類中寫入下面代碼來獲得流程引擎:

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
assertNotNull(processEngine);
assertEquals("root", processEngine.getProcessEngineConfiguration().getJdbcUsername());

以上我們通過ProcessEngineConfiguration這個配置入口獲得了流程引擎ProcessEngine,ProcessEngine是我們與Activiti的API打交道的主要方式,通過ProcessEngine,我們可以訪問各種提供工作流/ BPMN功能的服務(wù),該流程引擎和所有的服務(wù)對象都是線程安全的。

Spring Boot中使用activiti的方法教程(一)

該ProcessEngines類將掃描的activiti.cfg.xml和Activiti-context.xml文件。對于activiti-context.xml文件,將以Spring方式創(chuàng)建 - 將創(chuàng)建Spring Application Context并從中獲取ProcessEngine。在執(zhí)行流程期間,將按BPMN文件中定義的順序訪問所有步驟。

為了更進一步了解流程概念,我們先了解一下Activiti中的流程概念和術(shù)語:

(1) 一個ProcessDefinition代表的業(yè)務(wù)流程。它用于定義流程中不同步驟的結(jié)構(gòu)和行為。

(2) 部署流程定義意味著將流程定義加載到Activiti數(shù)據(jù)庫中。

(3) 流程定義主要由BPMN 2.0標(biāo)準(zhǔn)定義,也可以使用Java代碼定義它們,定義的所有術(shù)語也可用作Java類。

(4) 一旦我們開始運行流程定義,就可以稱為一個流程process。

(5) processInstance是ProcessDefinition一個執(zhí)行實例。

(6) 一個StartEvent與每一個業(yè)務(wù)流程有關(guān),它表示該流程的切入點,同樣,有一個EndEvent表示流程的結(jié)束。我們可以定義這些事件的條件。

(7) 開始和結(jié)束之間的所有步驟(或元素)稱為任務(wù),任務(wù)可以是各種類型的。最常用的任務(wù)是UserTasks和ServiceTasks。

顧名思義,UserTasks需要由用戶手動執(zhí)行,另一方面,ServiceTasks配置了一段代碼,每當(dāng)執(zhí)行到達這段代碼時,代碼將被執(zhí)行。

SequenceFlows用來連接任務(wù),我們可以通過它將源元素和目標(biāo)元素連接起來定義一個SequenceFlows;同樣,我們還可以在SequenceFlow上定義條件,這樣能在流程中創(chuàng)建條件路徑。

下圖是一個請教BPM的定義配置文件,配置元素在上面都有闡述,看圖可產(chǎn)生更直觀的印象:

Spring Boot中使用activiti的方法教程(一)

該流程定義屬于一個ProcessDefinition,起始于startEvent,結(jié)束于endEvent,中間步驟是userTask或serviceTask,其中也有SequenceFlows進行元素連接。

有了流程定義,我們可以使用Activiti提供的服務(wù)功能進行流程運行,Activiti提供的服務(wù)有:

  • RepositoryService幫助我們實現(xiàn)流程定義的部署。此服務(wù)會處理與流程定義相關(guān)的靜態(tài)數(shù)據(jù)。
  • RuntimeService管理 ProcessInstances(當(dāng)前正在運行的進程)以及進程變量
  • TaskService會跟蹤 UserTasks,需要由用戶手動執(zhí)行的任務(wù)是Activiti API的核心。我們可以使用此服務(wù)創(chuàng)建任務(wù),聲明并完成任務(wù),分配任務(wù)的受讓人等。
  • FormService是一項可選服務(wù),它用于定義中開始表單和任務(wù)表單。
  • IdentityService管理用戶和組
  • HistoryService會跟蹤Activiti Engine的歷史記錄。我們還可以設(shè)置不同的歷史級別。
  • ManagementService與元數(shù)據(jù)相關(guān),在創(chuàng)建應(yīng)用程序時通常不需要
  • DynamicBpmnService幫助我們在不重新部署的情況下更改流程中的任何內(nèi)容 

Activiti的流程基礎(chǔ)知識已經(jīng)準(zhǔn)備完成,下面我們以請教為流程說明它的使用:感興趣的朋友們:點擊這里

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。


標(biāo)題名稱:SpringBoot中使用activiti的方法教程(一)
分享URL:http://weahome.cn/article/gsicdo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部