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=UTCusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driverjpa: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
。