springboot 集成工作流flowable教程
1.添加 Flowable 依赖
在 Maven 项目的 pom.xml 文件中,添加以下依赖:
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>6.6.0</version>
</dependency>
2.配置数据库连接
在 application.properties 文件中,添加以下配置信息:
spring.datasource.url=jdbc:mysql://localhost:3306/flowable?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 配置 Flowable 数据库表的前缀
spring.flowable.database-schema-update=true
spring.flowable.database-schema-update=none
spring.flowable.database-schema-update=create-drop
spring.flowable.database-schema-update=create
spring.flowable.database-schema-update=drop-create
spring.flowable.database-schema-update=validate
spring.flowable.database-schema=flowable
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
3.配置流程定义文件
在 resources 目录下,创建一个名为 processes 的文件夹,并将 BPMN 流程定义文件放入其中。
4.创建 Flowable REST 服务
在 Spring Boot 项目中,可以使用 Flowable 的 REST 服务来管理流程定义、任务、历史记录等信息。
在 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-rest-spring-boot-starter</artifactId>
<version>6.6.0</version>
</dependency>
在 application.properties 文件中添加以下配置信息:
# 配置 Flowable REST 服务的访问路径,默认为 /flowable-rest
spring.flowable.rest.app-path=/flowable-rest
# 配置 Flowable REST 服务的基本认证信息
spring.flowable.rest.auth.enabled=true
spring.flowable.rest.auth.user-id=user
spring.flowable.rest.auth.password=password
5.编写代码
在 Spring Boot 项目中,可以使用 Flowable 的 Java API 来处理流程定义、任务、历史记录等信息。以下是一个简单的例子:
@Service
public class MyService {
@Autowired
private ProcessEngine processEngine;
public void startProcess() {
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess");
System.out.println("流程实例ID:" + processInstance.getId());
}
public void completeTask(String taskId) {
TaskService taskService = processEngine.getTaskService();
taskService.complete(taskId);
System.out.println("任务已完成");
}
}
在上面的例子中,我们通过 ProcessEngine 获取了 RuntimeService 和 TaskService,并使用它们来启动流程实例和完成任务。