若依分离版整合activiti7

一、若依分离版整合activiti7

Activiti7发布正式版之后,它与SpringBoot2.x已经完全支持整合开发。

注意事项:

  1. Activiti7版本号与SpringBoot版本号的兼容性
  2. 数据库的配置和连接必须正确
  3. 在创建流程定义时,需要使用正确的文件路径和文件名
实战版本:
  1. Activiti7 版本号 7.1.0.M6
  2. Spring Boot版本号2.5.15

整合步骤

因Activiti7 与 SpringBoot 整合后,默认情况下,集成了 SpringSecurity 安全框架,但若依分离版使用了 SpringSecurity ,固无需独立进行SpringSecurity的整合,只需在pom文件中添加activiti-spring-boot-starter的依赖,就可以实现Activiti7 与 SpringBoot 整合。

  1. SpringBoot整合Activiti7的配置

在工程的pom.xml文件中引入相关的依赖

具体依赖如下:

<!--Activiti-->
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter</artifactId>
    <version>7.1.0.M6</version>
</dependency>
<!--Activiti-->
    
<!-- junit测试-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-test</artifactId>
</dependency>
<!-- junit测试-->
  1. SpringBoot的application.yml文件配置

实现Activiti7生成的表放到Mysql数据库中,需要在配置文件application.yml中添加相关的配置

在application-druid.yml文件中修改数据库的驱动、url、username、password

注意:activiti7默认没有开启数据库历史记录即不会生成相关历史记录表,需要手动配置开启

# 配置activiti
# true:activiti会对数据库表进行更新。如果表不存在,则创建
# false:默认值,activiti启动,会对比数据库表保存的版本,如果没有表或版本不匹配,会抛异常。
spring.activiti.database-schema-update=true

# activiti7需要手动开启记录
spring.activiti.db-history-used=true
spring.activiti.history-level=full
spring  
	activiti:
        #校验流程文件,自动部署验证设置:true-开启(默认)、false-关闭
        check-process-definitions: false
        # true:activiti会对数据库表进行更新。如果表不存在,则创建
		# false:默认值,activiti启动,会对比数据库表保存的版本,如果没有表或版本不匹配,会抛异常。
        database-schema-update: true
        #表示哪种情况下使用历史表,这里配置为full表示全部记录历史,方便绘制流程图
        #记录历史等级 可配置的历史级别有none, activity, audit, full
        history-level: full
        #true表示使用历史表
        db-history-used: true
        # 关闭 SpringAutoDeployment
        deployment-mode: never-fail
        # 是否使用uuid,false 不使用/ 默认是 true 使用
        use-strong-uuids: false
  1. 测试集成结果

    通过执行ProcessEngines.getDefaultProcessEngine()看系统是否生成activiti的25张表来判断是否集成成功

    ProcessEngines.getDefaultProcessEngine()会在第一次调用时 初始化并创建一个流程引擎,以后再调用就会返回相同的流程引擎。 使用对应的方法可以创建和关闭所有流程引擎:ProcessEngines.init()和ProcessEngines.destroy()。

package com.ruoyi.test;

import org.activiti.engine.*;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
public class ActivitiTest {

    /**
     * 流程部署
     */
    @Test
    public void initActivitiTable(){
        //1. 获取processEngine对象  --执行会创建25张表
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        System.out.println(engine);
        //2. 使用processEngine得到操作数据库的服务(RepositoryService)
        RepositoryService repositoryService = engine.getRepositoryService();
        //3. 使用ResitoryService进行流程部署,定义一个流程的名字,把bpmn文件和png文件部署到数据库里
        Deployment deploy = repositoryService.createDeployment()
                .name("test-workflow")   //流程名称
                .addClasspathResource("bpmn/test-workflow.bpmn")   //资源文件 bpmn配置文件
                .addClasspathResource("bpmn/diagram.png")   //资源文件  png流程图
                .disableSchemaValidation()
                .deploy();
        //4. 输出部署信息
        System.out.println("流程部署的ID:"+deploy.getId());
        System.out.println("流程部署的名字:"+deploy.getName());
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值