Activiti7发布正式版之后,它与SpringBoot2.x已经完全支持整合开发。
注意事项
- Activiti7版本号与Spring Boot版本号的兼容性
- 数据库的配置和连接必须正确
- 在创建流程定义时,需要使用正确的文件路径和文件名
实战版本:
- Activiti7版本号 7.1.0.M2
- Spring Boot版本号 2.3.1.RELEASE
整合步骤
因Activiti7已整合spring框架,并提供了starter,所以在pom文件中添加该starter的依赖,我们就可以实现activiti7与Springboot整合。
- SpringBoot整合Activiti7的配置
在工程的pom.xml文件中引入相关的依赖,其中activiti的依赖是:activiti-spring-boot-starter。
具体依赖如下所示:
<!-->Activiti<-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M2</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- druid连接 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
- SpringBoot的application.properties文件配置
为了能够实现Activiti7生成的表放到Mysql数据库中,需要在配置文件application.yml中添加相关的配置
注意:activiti7默认没有开启数据库历史记录,需要手动配置开启
# 数据库配置
spring.datasource.driver-class-name:com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username:root
spring.datasource.password:root
# 配置activiti
# true:activiti会对数据库表进行更新。如果表不存在,则创建
# false:默认值,activiti启动,会对比数据库表保存的版本,如果没有表或版本不匹配,会抛异常。
spring.activiti.database-schema-update=true
# activiti7需要手动开启记录
spring.activiti.db-history-used=true
spring.activiti.history-level=full
- 测试集成结果
- 创建数据表
ProcessEngines.getDefaultProcessEngine()会在第一次调用时 初始化并创建一个流程引擎,以后再调用就会返回相同的流程引擎。 使用对应的方法可以创建和关闭所有流程引擎:ProcessEngines.init()和ProcessEngines.destroy()。
@SpringBootTest
public class createTableTest {
@Test
public void initTable() {
//1,获取progressEngine对象
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
System.out.println(engine);
}
}
系统将生成activiti的25个数据表: