SpringBoot整合Flowable
因为工作需要使用流程引擎,所以记录一下SpringBoot整合Flowable流程引擎及后续开发使用。前期项目工程笔记使用的是个人搭建的以SpringBoot和SpringCloud为基础的架构,因主要用于学习,所以整个架构为微服务的结构,但采用整体打包的形式方便自己部署。此处采用Spring Boot版本为2.3.0.RELEASE, Flowable版本为V6.5.0。
一、工程依赖dependency
通用依赖 Dependencies 工程
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Flowable工程
<!-- SpringBoot项目基础依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Flowable 流程引擎 -->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter-process</artifactId>
<version>6.5.0</version>
</dependency>
<!-- 数据库驱动、连接池 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- MyBatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
二、SpringBoot启动类
创建一个简简单单的启动类,不需要太多花里胡哨的操作。微服务项目可导入相应的依赖jar包添加启动类注解。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author smile-jt
* @Created 2021/8/17 9:47
*/
@SpringBootApplication
public class FlowBusinessApplication {
private static final Logger logger = LoggerFactory.getLogger(FlowBusinessApplication.class);
public static void main(String[] args) {
SpringApplication.run(FlowBusinessApplication.class, args);
logger.info("--------------------- FlowBusinessApplication Successful Start ---------------------");
}
}
三、配置文件
配置文件主要为数据库配置、数据库连接池配置、Flowable配置, 此处使用yml配置文件。
spring:
application:
name: business-flow
main:
allow-bean-definition-overriding: on
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/my-flow?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: root
password: root
hikari:
minimum-idle: 5
idle-timeout: 600000
maximum-pool-size: 10
auto-commit: on
pool-name: MyHikariCP
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
flowable:
# 定义任务异步
async-executor-activate: false
# flowable会对数据库中所有表进行更新操作。如果表不存在,则自动创建
database-schema-update: true
# 自动部署验证设置:true-开启(默认)、false-关闭
check-process-definitions: false
# 历史记录级别由低到高分别为:none, activity, audit, full
history-level: full
四、启动项目
直接运行第二部创建的启动类FlowBusinessApplication,理想情况启动成功(若不能正常启动,面向百度、必应、谷歌,具体问题具体解决),控制台输出:
INFO cn.smile.business.flow.FlowBusinessApplication - Started FlowBusinessApplication in 12.506 seconds (JVM running for 13.718)
INFO cn.smile.business.flow.FlowBusinessApplication - --------------------- FlowBusinessApplication Successful Start ---------------------
查看相应数据库,Flowable成功创建46张数据表。