Springboot集成工作流Activity

本文介绍了工作流的概念和Activiti引擎的使用,包括流程定义、部署和启动流程实例。同时,详细讲解了如何在SpringBoot项目中集成Activiti,提供项目依赖、配置数据库以及禁用权限管理的步骤。最后,展示了创建简单流程图和测试流程部署的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

官网:https://www.activiti.org/

一 、工作流介绍

1.工作流(workflow)
就是通过计算机对业务流程自动化执行管理,它主要解决的是“使在多个参与这之间按照某种预定义规则自动化进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使目标的实现。”

2.BPM
BPM(Business Process Management),即业务流程管理,是一种规范化的构造端到端的业务流程,以持续的提高组织业务效率,常见商业管理如EMBA、MBA等均将BPM包含在内。

3.使用步骤
部署Activiti

Activiti是一个工作流引擎(其实就是一堆jar包API),业务系统访问(操作)activiti的接口,就可以方便的操作流程相关数据,这样就可以把工作流环境与业务系统的环境集成在一起。

流程定义

使用activiti流程建模工具(activiti-designer)定义业务流程(.bpmn文件)。

.bpmn文件就是业务流程定义文件,通过xml定义业务流程。

流程定义部署

activiti部署业务流程定义(.bpmn文件)。使用activiti提供的api把流程定义内容存储起来,在activiti执行过程中可以查询定义的内容,activiti执行把流程定义内容存储在数据库中。

启动一个流程实例

启动一个流程实例表示开始一次业务流程的运行。流程实例之间互不影响。

二、SpringBoot集成Activiti

1.项目环境
项目依赖

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.72</version>
        </dependency>


        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter</artifactId>
            <version>7.1.0.M6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3.4</version>
        </dependency>

yaml项目配置

mybatis:
    mapper-locations: classpath:mappers/*xml
    type-aliases-package: com.activiti.mybatis.entity
    configuration:
        map-underscore-to-camel-case: true
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
server:
    port: 8082

spring:
    application:
        name: activiti
    datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        name: activitiDataSource
        password: 'root'
        url: jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC
        username: 'root'

创建数据库:activiti
2.在idea中可以安装Activiti BPMN visualizer
在这里插入图片描述
3.java配置

activiti-spring-boot默认集成了spring security用于权限管理如需禁用security启动类中屏蔽ActivitiSpringIdentityAutoConfiguration,再增加一个配置类即可 Application中禁用权限相关集成。

import org.activiti.core.common.spring.identity.config.ActivitiSpringIdentityAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(exclude = {ActivitiSpringIdentityAutoConfiguration.class})
public class ActivitiApplication {

   public static void main(String[] args) {
       SpringApplication.run(ActivitiApplication.class, args);
  }

}

增加配置类ActivitiSpringIdentityAutoConfiguration,其中有三个方法在源码中并未查询到引用暂时不处理。

import org.activiti.api.runtime.shared.identity.UserGroupManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
import java.util.List;

@Configuration
public class ActivitiSpringIdentityAutoConfiguration {

   @Bean
   public UserGroupManager userGroupManager() {
       return new UserGroupManager() {
           @Override
           public List<String> getUserGroups(String s) {
               return new ArrayList<>();
          }
           @Override
           public List<String> getUserRoles(String s) {
               return null;
          }
           @Override
           public List<String> getGroups() {
               return null;
          }
           @Override
           public List<String> getUsers() {
               return null;
          }
      };
  }

}

启动服务,mysql数据库中activiti库中自动添加activiti相关表。
在这里插入图片描述
三. 画一个简单的流程图
1.新建bpmn文件
在这里插入图片描述
2.确定之后会自动生成一个xml文件
在这里插入图片描述
3.在文件的任意位置点击右键:view bpmn(Activiti)Diagram
在这里插入图片描述

4.打开可视化编辑器,右键start events –>start event画一个开始事件
在这里插入图片描述

  1. 测试
@SpringBootTest
class ActivitiApplicationTests {

    @Test
    public void deployProcess() {
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        RepositoryService repositoryService = processEngine.getRepositoryService();
        Deployment deploy = repositoryService.createDeployment().addClasspathResource("bpmn/demo1.bpmn20.xml").deploy();
        System.out.println(deploy.getId());
    }
}

  1. 运行结果
    在这里插入图片描述
    在这里插入图片描述
    数据库已经自动更新,至此开发环境搭建完成。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘不易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值