欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用SpringBoot整合Activiti6工作流的操作方法

 更新時間:2022年07月30日 13:21:03   作者:m0_54861649  
這篇文章主要介紹了使用SpringBoot整合Activiti6工作流,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.idea安裝actibpm流程設(shè)計器

打開idea插件搜索actibpm,安裝成功后重啟idea

在這里插入圖片描述

2.創(chuàng)建maven項目,導入相關(guān)依賴,添加配置文件

在這里插入圖片描述

pom.xml依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dongmen</groupId>
    <artifactId>testActSpringBoot</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <activiti.version>6.0.0</activiti.version>
        <mysql.version>5.1.29</mysql.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-rest-api</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

配置文件

#啟動端口
server.port=81
spring.datasource.url=jdbc:mysql://localhost:3306/acttest?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#1.false,默認值,acticiti啟動時對比數(shù)據(jù)庫表中保存的版本,如果沒有表或者版本不匹配,將拋出異常
#2.true,acticiti會對數(shù)據(jù)中所有的表進行更新操作,如果表不存在,則自動創(chuàng)建
#3.create_drop,在acticiti啟動時創(chuàng)建表,關(guān)閉時刪除表(必須手動關(guān)閉引擎才能刪除表)
#4.drop_create,在acticiti啟動時刪除原來的表,然后創(chuàng)建新表(不需要手動關(guān)閉引擎)
spring.activiti.database-schema-update=true
#檢測歷史表是否存在,acticit7默認沒有開啟歷史記錄信息
spring.activiti.db-history-used=true
#歷史記錄等級
#1.none:不保存任何歷史記錄,因此在流程執(zhí)行過程中,這是最高效的
#2.acticiti:級別高于none,保存流程實例與流程行為,其他數(shù)據(jù)不保存
#3.audit:除activiti級別會保存的數(shù)據(jù)外,還會保存全部的流程任務(wù)及其屬性,audit為默認值
#4.full:保存歷史數(shù)據(jù)的最高級別,除了保存audit級別的數(shù)據(jù)外,還會保存其他流程相關(guān)的細節(jié)數(shù)據(jù),包括一些流程參數(shù)等
spring.activiti.history-level=full
#默認true,效驗流程文件,默認效驗resources下的processes文件夾里的流程,為true自動部署流程,為false則不部署
#spring.activiti.check-process-definitions=false

3.新增啟動類,剔除掉activiti默認集成springsecurity

package com.dongmen;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author TANGSHUAI
 * @version 1.0
 * @date 2021-12-13 11:13
 * 項目啟動會自動部署processes文件夾的bpmn文件
 * 剔除springsecurity
 */
@SpringBootApplication(exclude = {
        org.activiti.spring.boot.SecurityAutoConfiguration.class,
        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

4.新建文件夾processes(名稱不能更改),新增Bpmn文件,畫流程圖

在這里插入圖片描述

這里我們用到了三種標簽,

在這里插入圖片描述

在這里插入圖片描述

 

在這里插入圖片描述

連接下一個標簽的線條,需要鼠標移動到標簽中間來獲取線條

在這里插入圖片描述

畫好流程圖后點擊空白處,左邊會出現(xiàn)流程參數(shù),這里我們只需要設(shè)置流程的id與name即可

在這里插入圖片描述

設(shè)置審批用戶信息,這里我第一個節(jié)點設(shè)置的時zhangsan,第二個節(jié)點設(shè)置的是lisi,設(shè)置成功后保存

在這里插入圖片描述

左側(cè)菜單介紹

在這里插入圖片描述

5.創(chuàng)建Controller

package com.dongmen.controller;


import org.activiti.engine.HistoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @author TANGSHUAI
 * @version 1.0
 * @date 2021-12-13 13:21
 */
@RestController
public class TestController {

    @Autowired
    private RuntimeService runtimeService;

    @Autowired
    private TaskService taskService;

    @Autowired
    private HistoryService historyService;

    //啟動流程
    @RequestMapping("/startAct")
    public void startAct() {
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1");
        System.out.println(processInstance.getId());
    }

    //查詢代辦任務(wù)
    @RequestMapping("taskAgents")
    public void taskAgents(){
        String user="zhangsan";
        List<Task> list = taskService.createTaskQuery().taskAssignee(user).list();
        for (Task task : list) {
            System.out.println("任務(wù)id:"+task.getId());
            System.out.println("當前審批用戶:"+task.getAssignee());
            System.out.println("任務(wù)名稱:"+task.getName());
        }
    }

    //審批流程
    @RequestMapping("/approvalProcess")
    public void approvalProcess() {
        String key = "myProcess_1";
        String user="zhangsan";
        //流程實例id,有多個流程時傳遞,單個不需要傳,act_ru_task表id
        String id="2505";
        //根據(jù)流程key,與用戶名稱查詢審批
        Task task = taskService.createTaskQuery()
                .processDefinitionKey(key)
                .taskAssignee(user)
                .taskId(id)
                .singleResult();
        if(task!=null){
            //審批流程
            taskService.complete(task.getId());
            System.out.println("審批成功!");
        }

    }

    //查詢已辦任務(wù)
    @RequestMapping("/hasToDoTasks")
    public void hasToDoTasks(){
        String user="zhangsan";
        List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery().taskAssignee(user).list();
        for (HistoricTaskInstance historicTaskInstance : list) {
            System.out.println("開始時間"+historicTaskInstance.getStartTime()+",結(jié)束時間:"+historicTaskInstance.getEndTime());
            System.out.println("流程名稱"+historicTaskInstance.getName());
        }


    }

}

6.啟動項目,Activiti會自動創(chuàng)建28張表,自動部署processes目錄Bpnm文件

表結(jié)構(gòu)介紹

在這里插入圖片描述

7.測試Controller

localhost:81/startAct–啟動流程,查看數(shù)據(jù)表act_ru_task

在這里插入圖片描述

localhost:81/taskAgents–查詢待辦任務(wù),訪問后查看后臺打印

在這里插入圖片描述

localhost:81/approvalProcess–審批流程,點擊審批流程后變成第二個節(jié)點審批

在這里插入圖片描述

localhost:81/hasToDoTasks–查詢已辦任務(wù),

在這里插入圖片描述

到此這篇關(guān)于使用SpringBoot整合Activiti6(工作流)的文章就介紹到這了,更多相關(guān)SpringBoot整合Activiti6內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 前端如何調(diào)用后端接口進行數(shù)據(jù)交互詳解(axios和SpringBoot)

    前端如何調(diào)用后端接口進行數(shù)據(jù)交互詳解(axios和SpringBoot)

    一般來講前端不會給后端接口,而是后端給前端接口的情況比較普遍,下面這篇文章主要給大家介紹了關(guān)于前端如何調(diào)用后端接口進行數(shù)據(jù)交互的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • java實現(xiàn)折半排序算法

    java實現(xiàn)折半排序算法

    折半插入排序法,又稱二分插入排序法,是直接插入排序法的改良版,也需要執(zhí)行i-1趟插入,不同之處在于,第i趟插入,先找出第i+1個元素應(yīng)該插入的的位置,假定前i個數(shù)據(jù)是已經(jīng)處于有序狀態(tài)。
    2015-04-04
  • JAVA實現(xiàn)經(jīng)典掃雷游戲的示例代碼

    JAVA實現(xiàn)經(jīng)典掃雷游戲的示例代碼

    windows自帶的游戲《掃雷》是陪伴了無數(shù)人的經(jīng)典游戲,本程序參考《掃雷》的規(guī)則進行了簡化,用java語言實現(xiàn),采用了swing技術(shù)進行了界面化處理。感興趣的可以學習一下
    2022-01-01
  • Java基礎(chǔ)學習之集合底層原理

    Java基礎(chǔ)學習之集合底層原理

    今天帶大家回顧Java基礎(chǔ)的相關(guān)知識,文中對集合底層原理作了非常詳細的圖文介紹,對Java初學者有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Maven將Jar包打入本地倉庫的實現(xiàn)

    Maven將Jar包打入本地倉庫的實現(xiàn)

    項目需要用到一個Jar包,不能從遠程倉庫拉取,只有一個Jar包,所以需要將Jar包打入到本地倉庫才能引入項目,本文主要介紹了Maven將Jar包打入本地倉庫的實現(xiàn),感興趣的可以了解一下
    2023-12-12
  • Java 實戰(zhàn)項目錘煉之嘟嘟健身房管理系統(tǒng)的實現(xiàn)流程

    Java 實戰(zhàn)項目錘煉之嘟嘟健身房管理系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個健身房管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • 深入聊一聊springboot項目全局異常處理那些事兒

    深入聊一聊springboot項目全局異常處理那些事兒

    最近在做項目時需要對異常進行全局統(tǒng)一處理,所以下面這篇文章主要給大家介紹了關(guān)于springboot項目全局異常處理那些事兒,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • Spring Cloud基于zuul實現(xiàn)網(wǎng)關(guān)過程解析

    Spring Cloud基于zuul實現(xiàn)網(wǎng)關(guān)過程解析

    這篇文章主要介紹了Spring Cloud基于zuul實現(xiàn)網(wǎng)關(guān)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java遞歸實現(xiàn)字符串全排列與全組合

    Java遞歸實現(xiàn)字符串全排列與全組合

    這篇文章主要為大家詳細介紹了Java遞歸實現(xiàn)字符串全排列與全組合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • java 將數(shù)據(jù)加載到內(nèi)存中的操作

    java 將數(shù)據(jù)加載到內(nèi)存中的操作

    這篇文章主要介紹了java 將數(shù)據(jù)加載到內(nèi)存中的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論