spring boot 整合 activiti 教程

1、pom.xml

复制代码
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter</artifactId>
    <version>7.3.0</version> <!-- 选择与项目匹配的版本 -->
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

2、application.yml

复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/activiti_db?useSSL=false&serverTimezone=UTC
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update # 可选:同步JPA实体与数据库表(非Activiti必需)
activiti:
  database-schema-update: true # 关键配置:自动创建/更新Activiti表
  async-executor-activate: true # 可选:启用异步执行器提升性能

3、

配置文件方式:通过XML配置自动建表​

对于习惯使用XML配置的项目,可通过activiti.cfg.xml文件定义流程引擎配置。

​步骤1:创建配置文件​

src/main/resources目录下创建activiti.cfg.xml,内容如下

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <!-- 配置流程引擎 -->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- 数据库连接 -->
        <property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_db?useSSL=false&serverTimezone=UTC"/>
        <property name="jdbcUsername" value="root"/>
        <property name="jdbcPassword" value="password"/>
        
        <!-- 自动建表策略(关键参数) -->
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
</beans>

步骤2:通过配置文件获取引擎​

在代码中加载配置文件,获取流程引擎:

复制代码
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;

public class ActivitiXmlConfigExample {
    public static void main(String[] args) {
        // 加载activiti.cfg.xml配置文件
        ProcessEngineConfiguration config = ProcessEngineConfiguration
            .createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        
        // 构建流程引擎(自动建表)
        ProcessEngine processEngine = config.buildProcessEngine();
        System.out.println("Activiti引擎启动成功,表已自动创建!");
    }
}

步骤3:验证表创建​

启动应用后,检查数据库中的ACT_前缀表是否存在

自动建表策略说明​

Activiti支持四种数据库表更新策略,通过databaseSchemaUpdate参数控制:

  • false(默认)​:严格模式,启动时检查表是否存在及版本是否匹配。若无表或版本不符,抛出异常(适用于生产环境,避免意外修改表结构)。
  • true:宽松模式,若表不存在则自动创建;若表存在但版本不符,自动更新表结构(适用于开发/测试环境,平衡灵活性与安全性)。
  • create-drop :启动时创建表,应用关闭时删除表(需手动调用processEngine.close(),适用于临时测试场景)。
  • drop-create:启动时删除旧表,再重新创建(无需手动关闭,适用于需要频繁重置表结构的场景)。
  • 常见问题排查​

•​​表未生成​ ​:检查数据库连接配置是否正确(如URL、用户名、密码)、依赖是否冲突(如Activiti版本与数据库驱动版本不兼容)、databaseSchemaUpdate参数是否设置为true

相关推荐
Leinwin26 分钟前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦37 分钟前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士1 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿1 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
alexhilton2 小时前
Compose中的ContentScale:终极可视化指南
android·kotlin·android jetpack
盐水冰2 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
凸头2 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141592 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
努力也学不会java3 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
攒了一袋星辰3 小时前
高并发强一致性顺序号生成系统 -- SequenceGenerator
java·数据库·mysql