| .. | ||
| logs | ||
| src | ||
| backend-fixed.log | ||
| backend.log | ||
| debug-workflow.json | ||
| fix-maven.sh | ||
| pom.xml | ||
| README.md | ||
| settings.xml | ||
| simple-workflow.json | ||
| test-workflow.json | ||
| workflow-request.json | ||
Flowable DevOps Backend
基于 Spring Boot 3 + WebFlux + Flowable 7 的可视化工作流平台后端。
技术栈
- Spring Boot 3.1.5 - 主框架
- WebFlux - 响应式Web框架
- Flowable 7.0.1 - 工作流引擎
- MySQL 8 - 主数据库
- Redis - 缓存
- Jakarta EL (JUEL) - 表达式引擎
- JPA/Hibernate - ORM框架
关键特性
- 同步执行策略(禁用全局异步执行器)
- 审批节点自然暂停等待
- 统一使用 Jakarta EL 表达式引擎
- ServiceTask 通过 delegateExpression 指向 genericNodeExecutor
运行环境要求
- Java 17+
- Maven 3.6+
- MySQL 8.0
- Redis
快速开始
1. 环境变量配置
设置以下环境变量:
# 数据库配置
export SPRING_DATASOURCE_URL="jdbc:mysql://172.22.222.111:3306/flowable-devops?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8mb4"
export SPRING_DATASOURCE_USERNAME="root"
export SPRING_DATASOURCE_PASSWORD="your-password"
# Redis配置
export SPRING_REDIS_HOST="172.22.222.111"
export SPRING_REDIS_PORT="6379"
export SPRING_REDIS_PASSWORD="your-redis-password"
export SPRING_REDIS_DATABASE="5"
2. 构建项目
# 如果遇到Maven仓库问题,使用项目本地的settings.xml
mvn -s settings.xml clean package -DskipTests
# 或者使用默认设置(需要确保Maven仓库配置正确)
mvn clean package -DskipTests
3. 运行应用
# 开发模式运行
mvn -s settings.xml spring-boot:run
# 或者直接运行jar包
java -jar target/flowable-devops-backend-1.0-SNAPSHOT.jar
应用将在 http://localhost:8080 启动。
4. 运行测试
# 运行所有测试
mvn -s settings.xml test
# 运行单个测试类
mvn -s settings.xml -Dtest=ExpressionEngineTest test
# 运行单个测试方法
mvn -s settings.xml -Dtest=ExpressionEngineTest#testSimpleExpression test
API端点
- 健康检查:
GET /actuator/health - 工作流管理:
/api/workflows - 节点类型:
/api/node-types - 任务审批:
/api/tasks
配置说明
application.yml 关键配置
flowable.async-executor-activate: false- 禁用异步执行器flowable.history-level: full- 完整历史记录app.workflow.expression.engine: jakarta-el- 使用 Jakarta EL 表达式引擎
数据库
项目使用 MySQL 8 作为主数据库,Flowable 会自动创建所需的表结构。
业务表包括:
workflow_definitions- 工作流定义node_types- 节点类型元数据workflow_executions- 工作流执行记录node_execution_logs- 节点执行日志
开发指南
目录结构
src/main/java/com/flowable/devops/
├── FlowableDevopsApplication.java # 主应用类
├── config/ # 配置类
│ ├── FlowableConfig.java # Flowable配置
│ └── WebFluxConfig.java # WebFlux配置
├── controller/ # 控制器
├── service/ # 服务层
├── entity/ # 实体类
├── repository/ # 数据访问层
├── workflow/ # 工作流相关
│ └── node/ # 节点实现
└── expression/ # 表达式引擎
注意事项
- 所有 ServiceTask 必须使用
delegateExpression="${genericNodeExecutor}" - 条件分支通过 ExclusiveGateway + 条件边实现
- 表达式统一使用 Jakarta EL,格式为
${...} - 审批节点使用 UserTask,自然暂停等待
故障排除
Maven依赖下载问题
如果遇到Maven仓库访问问题,使用项目本地的settings.xml:
mvn -s settings.xml [command]
数据库连接问题
确保:
- MySQL服务正在运行
- 数据库
flowable-devops已创建 - 用户权限配置正确
- 网络连接正常
Redis连接问题
确保:
- Redis服务正在运行
- 指定的数据库可访问
- 密码配置正确(如有)