91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-15 06:40:53 來源:腳本之家 閱讀:454 作者:jdon 欄目:編程語言

前言

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

定義流程有幾種方式:

1. 使用BPMN 2.0標準在定義一個流程XML。

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

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

Maven依賴:

<dependency>
 <groupId>org.activiti</groupId>
 <artifactId>activiti-spring-boot-starter-basic</artifactId>
 <version>6.0.0</version>
</dependency>

<dependency>
 <groupId>org.activiti</groupId>
 <artifactId>activiti-spring-boot-starter-security</artifactId>
 <version>6.0.0</version>
</dependency>

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

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">

 <property name="jdbcUrl" value="jdbc:h3:mem:activiti;DB_CLOSE_DELAY=1000" />
 <property name="jdbcDriver" value="org.h3.Driver" />
 <property name="jdbcUsername" value="root" />
 <property name="jdbcPassword" value="" />

 <property name="databaseSchemaUpdate" value="true" />
</bean>

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

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

調用這條語句將尋找類路徑中activiti.cfg.xml文件,并根據文件中的配置構造ProcessEngine。

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

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

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

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

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

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

(1) 一個ProcessDefinition代表的業務流程。它用于定義流程中不同步驟的結構和行為。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清涧县| 贵定县| 方正县| 蒙山县| 延庆县| 黄浦区| 海原县| 大姚县| 西宁市| 越西县| 申扎县| 怀集县| 汉阴县| 阳朔县| 芒康县| 黄山市| 江津市| 宁武县| 商城县| 得荣县| 阿拉尔市| 香港| 循化| 镇平县| 惠州市| 吐鲁番市| 多伦县| 商都县| 临城县| 宝山区| 萝北县| 嘉荫县| 会昌县| 兰溪市| 无棣县| 晋城| 横山县| 云梦县| 长春市| 花莲县| 鄂州市|