最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年08月09日 10:22:43   作者:jdon  
最近一直研究springboot,下面這篇文章主要給大家介紹了關(guān)于Spring Boot中使用activiti的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

定義流程有幾種方式:

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

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

如果我們想要運(yùn)行進(jìn)程或訪問任何服務(wù),需要首先創(chuàng)建ProcessEngineConfiguration。也就是說,ProcessEngineConfiguration是使用Activiti API的起始之點(diǎn),使用這個(gè)類也可獲得流程引擎,然后就可以執(zhí)行工作流和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連接到數(shù)據(jù)庫,常使用XML文件activiti.cfg.xml進(jìn)行配置:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

  • 三步輕松搭建springMVC框架

    三步輕松搭建springMVC框架

    這篇文章主要教大家三步輕松搭建springMVC框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Java中的鎖ReentrantLock詳解

    Java中的鎖ReentrantLock詳解

    這篇文章主要介紹了Java中的鎖ReentrantLock詳解,ReentantLock是java中重入鎖的實(shí)現(xiàn),一次只能有一個(gè)線程來持有鎖,包含三個(gè)內(nèi)部類,Sync、NonFairSync、FairSync,需要的朋友可以參考下
    2023-09-09
  • 關(guān)于Mybatis-Plus?Update更新策略問題

    關(guān)于Mybatis-Plus?Update更新策略問題

    這篇文章主要介紹了關(guān)于Mybatis-Plus?Update更新策略問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • logback高效狀態(tài)管理器StatusManager源碼解析

    logback高效狀態(tài)管理器StatusManager源碼解析

    這篇文章主要為大家介紹了logback高效狀態(tài)管理器StatusManager源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • SpringBoot項(xiàng)目中引入本地JAR包配置的幾種方法

    SpringBoot項(xiàng)目中引入本地JAR包配置的幾種方法

    SpringBoot有時(shí)需要引入本地JAR包以便重用已有的代碼庫或者第三方庫,本文主要介紹了SpringBoot項(xiàng)目中引入本地JAR包配置的幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Java項(xiàng)目開發(fā)命名規(guī)范(動力節(jié)點(diǎn)Java學(xué)院整理)

    Java項(xiàng)目開發(fā)命名規(guī)范(動力節(jié)點(diǎn)Java學(xué)院整理)

    定義這個(gè)規(guī)范的目的是讓項(xiàng)目中所有的文檔都看起來像一個(gè)人寫的,增加可讀性,減少項(xiàng)目組中因?yàn)閾Q人而帶來的損失。下面給大家分享java開發(fā)命名規(guī)范,一起看看吧
    2017-03-03
  • Springboot如何讀取resources下的json配置文件

    Springboot如何讀取resources下的json配置文件

    這篇文章主要介紹了Springboot如何讀取resources下的json配置文件問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解用Eclipse如何創(chuàng)建Web項(xiàng)目

    詳解用Eclipse如何創(chuàng)建Web項(xiàng)目

    本篇文章主要介紹了詳解用Eclipse如何創(chuàng)建Web項(xiàng)目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java線程并發(fā)訪問代碼分析

    Java線程并發(fā)訪問代碼分析

    這篇文章主要介紹了Java線程并發(fā)訪問代碼分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java實(shí)戰(zhàn)之仿天貓商城系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之仿天貓商城系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java制作一個(gè)基于SSM框架的迷你天貓商城系統(tǒng),文中采用的技術(shù)有JSP、Springboot、SpringMVC、Spring等,需要的可以參考一下
    2022-03-03

最新評論

南木林县| 卓尼县| 左云县| 乌兰浩特市| 浪卡子县| 报价| 赫章县| 张家界市| 肇东市| 读书| 依兰县| 全州县| 喜德县| 秦安县| 招远市| 潼南县| 博湖县| 多伦县| 乌苏市| 错那县| 平罗县| 平江县| 定日县| 新郑市| 金坛市| 河北省| 克拉玛依市| 赤城县| 辽中县| 安仁县| 林甸县| 滦南县| 云浮市| 五台县| 泸定县| 嘉义县| 余姚市| 浦县| 龙陵县| 佛学| 常山县|