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

相关推荐
我命由我123458 小时前
Java NIO 编程 - NIO Echo Server、NIO Client(NIO 异步客户端、NIO Selector 异步客户端)
java·开发语言·网络·java-ee·intellij-idea·intellij idea·nio
嗯、.8 小时前
使用Itext9生成PDF水印,兼容不同生成引擎的坐标系(如: Skia、OpenPDF)
java·pdf·itextpdf·openpdf·坐标变换矩阵
2501_941886868 小时前
边缘计算崛起:推动万物互联时代高效运算的新引擎
spring
巧克力芋泥包10 小时前
前端使用阿里云图形验证码;并且与安卓进行交互
android·前端·阿里云
断剑zou天涯11 小时前
【算法笔记】窗口内最大值或最小值的更新结构
java·笔记·算法
m***667312 小时前
SQL 实战—递归 SQL:层级结构查询与处理树形数据
java·数据库·sql
Just_Paranoid13 小时前
【MQTT】基于 Android 设备接入物联网平台最佳实践
android·mqtt·eclipse·iot·paho·mqtt.fx
鲸沉梦落13 小时前
Java中的Stream
java
yihuiComeOn14 小时前
[源码系列:手写Spring] AOP第二节:JDK动态代理 - 当AOP遇见动态代理的浪漫邂逅
java·后端·spring
Porunarufu14 小时前
Java·关于List
java·开发语言