中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

spring boot activity 項目搭建的示例分析

發布時間:2021-12-10 16:56:43 來源:億速云 閱讀:311 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關spring boot activity 項目搭建的示例分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

spring boot activity 項目搭建

初始化一個spring boot 項目 

maven 只要上面一個就可以了 activiti-spring-boot-starter-basic ,下面兩個是 rest 請求和 protometheus 統計數據用的

  <properties>
        <activiti.version>6.0.0</activiti.version>
    </properties>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        
       <dependency>
           <groupId>org.activiti</groupId>-->
           <artifactId>activiti-spring-boot-starter-rest-api</artifactId>-->
           <version>${activiti.version}</version>-->
       </dependency>

       <dependency>
           <groupId>org.activiti</groupId>-->
           <artifactId>activiti-spring-boot-starter-actuator</artifactId>-->
           <version>${activiti.version}</version>-->
       </dependency>

修改啟動文件和 application.yml

啟動文件上排除 @SpringBootApplication(exclude = org.activiti.spring.boot.SecurityAutoConfiguration.class)

application.yml 注意 datasource.url 要加&nullCatalogMeansCurrent=true ,項目啟動時數據庫表會自動建立

spring:
  activiti:
    database-schema-update: true
    job-executor-activate: true # asyncExecutorEnabled屬性設置設置true后將代替那些老的Job executor
    history-level: full
    db-history-used: true
    check-process-definitions: true # 自動部署驗證設置:true-開啟(默認)、false-關閉  
 datasource:
   driver-class-name: com.mysql.cj.jdbc.Driver
   password:  
   url: jdbc:mysql:///?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
   username:

其他idea plugins 中尋找安裝 actiBPM 插件 , restart idea

備注:idea 亂碼解決方案 :點擊 idea->help 菜單->edit Custome Vm Option 菜單 ,增加一行 -Dfile.encoding=UTF-8 重啟即可解決亂碼

在resource 目錄下建立 processes 文件夾 ,右鍵文件夾新建*.bpmn 文件 可以畫流程圖 (spring boot bpmn 默認讀取路徑是 resource/processes/) 類似: start ->server_task->user_task->end 四個簡單的流程圖

新建測試用例

startProcessInstanceByKey(key), resource/processes/key.bpmn 。 key.bpmn 后綴改為xml 修改xml中的process id="key"

 @RunWith(SpringJUnit4ClassRunner.class)
 @SpringBootTest
 public class activitTest {
 
     @Autowired
     private RuntimeService runtimeService;
 
     @Autowired
     private TaskService taskService;
 
     @Test
     @Deployment
     public void simpleProcessTest() {
        runtimeService.startProcessInstanceByKey("myProcess_1");
 
         Task task = taskService.createTaskQuery().singleResult();
         taskService.complete(task.getId());
     }
 
     @Test
     public  void queryProcessList(){
         ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().processDefinitionKey("myProcess_1");
         List<ProcessInstance> list = query.list();
         System.out.println(list.size());
         list.forEach(e->{
             Task task = taskService.createTaskQuery().processInstanceId(e.getProcessInstanceId()).singleResult();
             taskService.complete(task.getId());
         });
     }
 }

上面已經可以跑起來了

為了和我們的業務聯合起來 需要新建service

相應的流程圖要調用下面的兩個方法

start ->server_task->user_task->end 四個簡單的流程圖

server_task 加 activiti:expression="#{bootTestService.begin(execution)}" || server_task 在流程圖上 改type=expression value=#{bootTestService.begin(execution)} 表示監聽

user_task 加 activiti:candidateUsers="${bootTestService.end()}" || user_task 在流程圖上 改Candidate Users value=${bootTestService.end()}

備注:事件監聽是以#開頭

@Service
public class BootTestService {
    public void begin(DelegateExecution execution){
        System.out.println("begint");
        System.out.println(execution.getCurrentActivityId());
        System.out.println(execution.getEventName());
        System.out.println(execution.getTenantId());
    }

    public List<String> end(){
        System.out.println("end");
        return Arrays.asList("hello","hello");
    }
}

最終執行 單元測試 主要表結構如下

//部署表

act_re_procdef 字段 process_id 字段 DEPLOYMENT_ID_

act_re_deployment

act_ge_bytearray

act_ge_property

//任務表

act_hi_procinst process 實例表

act_hi_taskinst PROC_INST_ID_ 字段跟上表關聯 EXECUTION_ID_ 與下表關聯

act_hi_actinst 具體的步驟表

Activiti 7大服務介紹

TaskService :在 Activiti 中業務流程定義中的每一個執行節點被稱為一個 Task,對流程中的數據存取,狀態變更等操作均需要在 Task 中完成。 Task Service 提供了對用戶 Task 和 Form 相關的操作。它提供了運行時任務查詢、領取、完成、刪除以及變量設置等功能。

RuntimeService:在 Activiti 中,每當一個流程定義被啟動一次之后,都會生成一個相應的流程對象實例。Runtime Service 提供了啟動流程、查詢流程實例、 設置獲取流程實例變量等功能。此外它還提供了對流程部署,流程定義和流程實例的存取服務。

RepositoryService :Activiti 中每一個不同版本的業務流程的定義都需要使用一些定義文件,部署文件和支持數據 ( 例如 BPMN2.0 XML 文件,表單定義文件, 流程定義圖像文件等 ),這些文件都存儲在 Activiti 內建的 Repository 中。Repository Service 提供了對 repository 的存取服務。

HistoryService :History Service 用于獲取正在運行或已經完成的流程實例的信息,與 Runtime Service 中獲取的流程信息不同,歷史信息包含已經持久化存儲的永久信息,并已經被針對查詢優化。

FormService : Activiti 中的流程和狀態 Task 均可以關聯業務相關的數據。通過使用 Form Service 可以存取啟動和完成任務所需的表單數據并且根據需要來渲染表單。

IdentityService :Activiti 中內置了用戶以及組管理的功能,必須使用這些用戶和組的信息才能獲取到相應的 Task。Identity Service 提供了對 Activiti 系統中的用戶和組的管理功能。

ManagementService : Management Service 提供了對 Activiti 流程引擎的管理和維護功能,這些功能不在工作流驅動的應用程序中使用,主要用于 Activiti 系統的日常維護。

Activiti使用到的表都是ACT_開頭的。

  ACT_RE_*:  ’RE’表示repository(存儲),RepositoryService接口所操作的表。帶此前綴的表包含的是靜態信息,如,流程定義,流程的資源(圖片,規則等)。

  ACT_RU_*: ‘RU’表示runtime,運行時表-RuntimeService。這是運行時的表存儲著流程變量,用戶任務,變量,職責(job)等運行時的數據。Activiti只存儲實例執行期間的運行時數據,當流程實例結束時,將刪除這些記錄。這就保證了這些運行時的表小且快。

  ACT_ID_*: ’ID’表示identity (組織機構),IdentityService接口所操作的表。用戶記錄,流程中使用到的用戶和組。這些表包含標識的信息,如用戶,用戶組,等等。

  ACT_HI_*: ’HI’表示history,歷史數據表,HistoryService。就是這些表包含著流程執行的歷史相關數據,如結束的流程實例,變量,任務,等等

  ACT_GE_*: 全局通用數據及設置(general),各種情況都使用的數據。

序號 表名 說明

1 act_ge_bytearray 二進制數據表

2 act_ge_property 屬性數據表存儲整個流程引擎級別的數據,初始化表結構時,會默認插入三條記錄,

3 act_hi_actinst 歷史節點表

4 act_hi_attachment 歷史附件表

5 act_hi_comment 歷史意見表

6 act_hi_identitylink 歷史流程人員表

7 act_hi_detail 歷史詳情表,提供歷史變量的查詢

8 act_hi_procinst 歷史流程實例表

9 act_hi_taskinst 歷史任務實例表

10 act_hi_varinst 歷史變量表

11 act_id_group 用戶組信息表

12 act_id_info 用戶擴展信息表

13 act_id_membership 用戶與用戶組對應信息表

14 act_id_user 用戶信息表

15 act_re_deployment 部署信息表

16 act_re_model 流程設計模型部署表

17 act_re_procdef 流程定義數據表

18 act_ru_event_subscr throwEvent、catchEvent時間監聽信息表

19 act_ru_execution 運行時流程執行實例表

20 act_ru_identitylink 運行時流程人員表,主要存儲任務節點與參與者的相關信息

21 act_ru_job 運行時定時任務數據表

22 act_ru_task 運行時任務節點表

23 act_ru_variable 運行時流程變量數據表

關于spring boot activity 項目搭建的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

南开区| 岳普湖县| 通州市| 安西县| 临武县| 乐至县| 河东区| 广东省| 阿尔山市| 普宁市| 丘北县| 蓬安县| 泽州县| 石城县| 沅江市| 马龙县| 桃园市| 务川| 龙胜| 饶河县| 乌拉特前旗| 临江市| 蒙城县| 定远县| 咸丰县| 上虞市| 皋兰县| 明溪县| 台安县| 台中县| 米泉市| 永修县| 巴里| 台南市| 玛曲县| 长汀县| 从江县| 武夷山市| 朝阳区| 县级市| 军事|