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

相关推荐
疯狂打码的少年2 小时前
【数据库技术】关系模型基本概念(关系/属性/元组/键)
java·服务器·数据库·笔记
Mr数据杨3 小时前
【Codex】用学生入学评估模块建立新生能力画像
android·java·javascript·django·codex·项目开发
2601_962056234 小时前
Spring Boot 入门 与 无法解析符号 springframework 的解决
java·spring boot·后端
●VON4 小时前
谁小时候不想要一个游戏修改器?我把电脑 Skill 做成了 Android 小助手
android·游戏·电脑
Thomas21434 小时前
Java scala 数组 链表
java·链表·scala
刃神太酷啦4 小时前
Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)
android·linux·c语言·c++·mysql·leetcode·mariadb
里欧跑得慢4 小时前
Flutter 三方库 function_tree — 鸿蒙应用开发中的动态数学公式解析与计算神器,实现鸿蒙深度适配下的复杂函数逻辑运行时求值实战(适配鸿蒙 HarmonyOS Next ohos)
android·前端·安全·flutter·华为·harmonyos
亚历克斯神4 小时前
低代码与 AI 的融合趋势——从可视化搭建到自然语言生成应用
java·spring·微服务
IT毕设实战小研4 小时前
基于安卓的空气质量查询系统
android·大数据·vue.js·爬虫·python·django·课程设计
学长毕业设计5 小时前
基于SpringBoot的瑜伽馆网站的设计与实现(源码+文档+讲解视频)
java·spring boot·后端