SpringBoot 集成
# SpringBoot 集成
# 环境依赖
- JDK V1.8
- SpringBoot 2.3.x
# 数据库环境准备
# 修改 MySQL 大小写敏感
Linux 环境中安装的 MySQL 默认是大小写敏感的,需要关闭。
因为 Activiti 比较坑,它自动创建表的时候用的是小写,操作表的代码是大写,如果不关闭 MySQL 的大小写敏感机制,代码执行会报错。
vim /etc/my.cnf
1
找到如下内容并修改(或添加):
# 是否对 sql 语句大小写敏感,1 表示不敏感
lower_case_table_names=1
1
2
2
然后重启 MySQL。
# 创建数据库
创建一个数据库,比如就叫 activiti
,剩下的 activiti7 相关的表会在运行 SpringBoot 项目后自动创建。
# 安装 Activiti 依赖
# 所需依赖
从 Activiti 官方网站 (opens new window) 可以查到的坐标如下:
<!-- 与 SpringBoot 整合用的坐标 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
</dependency>
<!-- 这是个内存数据库,项目启动时初始化,项目结束后释放,由于我们用 MySQL 持久化数据,所以这个不需要 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<!-- Activiti7 版本的坐标 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-dependencies</artifactId>
<version>7.1.0-M16</version>
<scope>import</scope>
<type>pom</type>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 安装依赖
不过上面的包在官方和阿里的 Maven 仓库都搜不到(本地导入不了),所以需要在阿里云 Maven (opens new window)中分别搜:
activiti-spring-boot-starter
仓库 文件名 group-Id artifact-Id version classifier packaging central activiti-spring-boot-starter-7.1.0.M4.jar org.activiti activiti-spring-boot-starter 7.1.0.M4 -- jar activiti-dependencies
仓库 文件名 group-Id artifact-Id version classifier packaging central activiti-dependencies-7.1.0.M4.pom org.activiti.dependencies activiti-dependencies 7.1.0.M4 -- pom
然后添加到 pom.xml
:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M4</version>
</dependency>
<dependency>
<groupId>org.activiti.dependencies</groupId>
<artifactId>activiti-dependencies</artifactId>
<version>7.1.0.M4</version>
<type>pom</type>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 配置 Activiti7 历史表创建
为了在项目启动时自动生成 activiti 历史表,需要在 application.yml
中增加如下配置:
spring:
activiti:
database-schema-update: true # 生产环境改为 false
history-level: audit
db-history-used: true
check-process-definitions: false # 关闭自动部署
1
2
3
4
5
6
2
3
4
5
6
# 版本 Bug
# M4
Bug 描述:存在自建表缺失两个字段的 Bug,需要补充字段。
修复方式:执行下面两条 SQL 语句:
-- ----------------------------
-- 修复Activiti7的M4版本缺失字段Bug
-- ----------------------------
alter table ACT_RE_DEPLOYMENT add column PROJECT_RELEASE_VERSION_ varchar(255) DEFAULT NULL;
alter table ACT_RE_DEPLOYMENT add column VERSION_ varchar(255) DEFAULT NULL;
1
2
3
4
5
2
3
4
5
# M5
不要使用 M5 版本的 Activiti7,它存在 Bug。
Bug 描述:会在每次项目启动的时候,都会在 act_re_deployment
表中自动增加一条数据 SpringAutoDeployment
。
(完)