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

相关推荐
Java水解5 小时前
Spring JDBC与KingbaseES深度集成:构建高性能国产数据库应用实战
后端·spring
junnhwan6 小时前
【苍穹外卖笔记】Day04--套餐管理模块
java·数据库·spring boot·后端·苍穹外卖·crud
川石课堂软件测试6 小时前
全链路Controller压测负载均衡
android·运维·开发语言·python·mysql·adb·负载均衡
程序员清风6 小时前
Dubbo RPCContext存储一些通用数据,这个用手动清除吗?
java·后端·面试
低音钢琴6 小时前
【SpringBoot从初学者到专家的成长15】MVC、Spring MVC与Spring Boot:理解其差异与联系
spring boot·spring·mvc
摇滚侠6 小时前
Spring Boot 3零基础教程,条件注解,笔记09
java·spring boot·笔记
南瓜小米粥、6 小时前
从可插拔拦截器出发:自定义、注入 Spring Boot、到生效路径的完整实践(Demo 版)
java·spring boot·后端
Huangmiemei9116 小时前
Spring Boot项目的常用依赖有哪些?
java·spring boot·后端
天天摸鱼的java工程师6 小时前
接口联调总卡壳?先问自己:真的搞清楚 HTTP 的 Header 和 Body 了吗?
java·后端