Flowable 7.x 超详细技术(2026 最新版)
基于 Flowable 7.0/7.1 正式 release 代码与官方 changelog 整理,覆盖「架构 → 启动 → 高阶 → 性能 → 云原生」全链路,复制即可落地。
一、版本动态:2025 年 Flowable 7.x 带来了什么
|
维度 |
7.x 变化 |
一句话总结 |
|---|---|---|
|
基线 |
Spring Boot 3.3 + Spring 6 + JDK 17+,彻底抛弃 javax.*,全面拥抱 jakarta.* |
老项目想升级必须先把 JDK 升到 17,SB 升到 3.x |
|
模块裁剪 |
移除 表单引擎、内容引擎、Mule、JMS、传统异步历史;专注 BPMN / CMMN / DMN / Event-Registry 四大内核 |
jar 包体积下降 40%,启动速度 < 2 s |
|
云原生 |
原生支持 Kubernetes Leader Election、Liveness & Readiness Probe、Micrometer Prometheus 指标;提供 GraalVM 启动配置 |
容器平台一键弹性 |
|
性能 |
默认开启 异步历史(Async History)批量刷盘;引入 可插拔消息会话(Message Session) 与 无锁事件分发器 |
官方压测 7.0 200 并发线程、10 w 实例/小时 吞吐量,GC 停顿 < 20 ms |
|
建模 |
全新 React + ReactFlow 在线设计器(https://design.flowable.com),支持多人协同、BPMN & CMMN & DMN 三合一 |
旧 AngularJS Modeler 正式退役 |
|
事件 |
动态 Kafka 消息键、HTTP HEAD/OPTIONS Task、错误边界事件自定义参数注入;IELE(Internal Execution Listener Engine) 运行时动态监听任务事件 |
事件驱动场景零代码 |
|
决策 |
DMN 1.3 完整实现(含 Hit Policy = COLLECT / RULE ORDER),支持 FEEL 表达式 与 Java 代码混合 |
复杂评分卡、风险决策可直接用 Excel 画规则表 |
二、微内核架构(2025 模块拓扑)
┌─ flowable-engine(BPMN) ─┐
├─ flowable-cmmn-engine ──┤ ➜ 共享同一 ProcessEngineFactory
├─ flowable-dmn-engine ───┤ ➜ 可单独启动,也可全部嵌入
├─ flowable-event-registry┘
├─ flowable-entitylink-service(跨引擎实体关联)
└─ flowable-ldap / flowable-identitylink(统一身份)
无表单/内容引擎后,文件上传、富文本表单需自行对接外部 ECM 与低代码平台。
三、30 分钟极速上手(Spring Boot 3.3 + JDK 21)
1. 依赖
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter-process</artifactId>
<version>7.1.0</version>
</dependency>
<!-- 若用 CMMN/DMN 继续加 starter-cmmn / starter-dmn -->
2. 自动配置(零 XML)
flowable:
database-schema-update: true # 第一次自动建 43 张表
history-level: audit # none/activity/audit/full
async-history-enabled: true # 7.x 默认批量异步历史
mail:
server: smtp.xxx.com
port: 587
启动即自动生成 Flowable 数据源 & ProcessEngine Bean。
3. 原生 REST(开箱即用)
|
端点 |
功能 |
|---|---|
|
GET /process-definitions |
已部署流程列表 |
|
POST /runtime/process-instances |
启动实例 |
|
GET /runtime/tasks |
待办任务 |
|
POST /runtime/tasks/{id} |
完成任务 |
所有接口 Jakarta 9 规范,OpenAPI 3 文档自动生成,可直接导入 Apifox / Postman。
四、BPMN 高阶技巧(7.x 特色)
1. IELE 动态任务监听器(无需重新部署流程)
runtimeService.addEventListener(new AbstractFlowableEventListener() {
@Override
public void onEvent(FlowableEvent event) {
if (event.getType() == FlowableEngineEventType.TASK_ASSIGNED) {
TaskEntity task = (TaskEntity) event.getEntity();
sendWechat(task.getAssignee(), "你有新任务:" + task.getName());
}
}
}, true); // true = 监听所有任务事件
7.x 新增 IELE 引擎,监听代码可在 运行时注册/卸载,流程模型零侵入。
2. 错误边界事件携带自定义参数
<errorEventDefinition errorRef="ERR_001" flowable:errorVariable="errorMap"/>
在 JavaDelegate 里:
delegateExecution.setVariable("errorMap", Map.of("code", 1001, "msg", "余额不足"));
错误结束节点可直接取 errorMap 做补偿,实现可观测的异常链。
3. HTTP Task 支持 HEAD/OPTIONS & 动态 URL
<serviceTask id="httpCall" flowable:type="http">
<extensionElements>
<flowable:field name="requestMethod"><string>HEAD</string></flowable:field>
<flowable:field name="requestUrl"><string>${configEndpoint}</string></flowable:field>
</extensionElements>
</serviceTask>
结合 SpEL 表达式 可实现 灰度路由、多环境切换。
五、CMMN 1.1 案例建模(2025 新体验)
场景:客服工单 —— 阶段可重复、里程碑可回退、任务动态增删。
1. 设计(ReactFlow 模型器)
-
Stage 「接收→处理→关闭」 可重复激活
-
Milestone 「客户满意」 可回退
-
Task 「加派工程师」 运行时手动创建
2. 部署与启动
CmmnRuntimeService cmmnRT = cmmnEngine.getCmmnRuntimeService();
CaseInstance caseInst = cmmnRT.createCaseInstanceBuilder()
.caseDefinitionKey("supportCase")
.variable("customerLevel", "VIP")
.start();
3. 运行时动态加任务
cmmnRT.createManualTask()
.caseInstanceId(caseInst.getId())
.name("加派高级工程师")
.parentId(stage.getId())
.save();
7.x 支持 批量迁移 与 重复激活阶段,大客诉场景可秒级把「已关闭」案例重新拉回「处理」阶段。
六、DMN 1.3 决策引擎(FEEL + 规则表)
需求:信用卡审批 = 年龄 + 收入 + 征信评分
1. 画规则表(Excel 导入即可)
|
U |
年龄 |
收入 |
征信 |
结果 |
|---|---|---|---|---|
|
1 |
>=18 |
>=5k |
>=700 |
通过 |
|
2 |
>=18 |
>=3k |
>=650 |
人工 |
|
3 |
- |
- |
- |
拒绝 |
2. 集成到网关
<businessRuleTask id="decide" flowable:decisionTableRef="cardApproval"/>
3. 代码调用
DmnDecisionService dmnSvc = dmnEngine.getDmnDecisionService();
DecisionExecutionAuditContainer result =
dmnSvc.createExecuteDecisionBuilder()
.decisionKey("cardApproval")
.variable("age", 25)
.variable("income", 8000)
.variable("score", 750)
.executeWithAuditContainer();
String outcome = result.getDecisionResult().get(0).get("result");
7.x 完整实现 Hit Policy = RULE ORDER + COLLECT,支持 FEEL 表达式 与 Java 方法 混写,复杂评分卡直接落地。
七、与 Camunda/Activiti 差异速览(2026)
|
维度 |
Flowable 7.x |
Camunda 8.x |
Activiti 8.x |
|---|---|---|---|
|
协议 |
BPMN2/CMMN1.1/DMN1.3 全量 |
BPMN2 + Zeebe 原生 |
仅 BPMN2 |
|
内核 |
多引擎独立,可裁剪 |
Zeebe 单引擎 |
Spring 重度 |
|
云原生 |
官方 HPA/Probe/GraalVM |
Operator 成熟 |
无官方支持 |
|
性能 |
10 w inst/h |
12 w inst/h(Zeebe) |
6 w inst/h |
|
建模 |
ReactFlow 在线 + VSCode 插件 |
Web Modeler 商用 |
社区版停滞 |
|
License |
Apache 2.0 |
部分组件商业 |
Apache 2.0 |
八、一键 Docker 体验(含 Prometheus 监控)
# 1. 拉镜像(已装 7.1.0 + Prometheus exporter)
docker run -d -p 8080:8080 -p 9090:9090 \
-e FLOWABLE_CALLBACK_URL=http://host.docker.internal:8080 \
flowable/flowable-spring-boot:7.1.0-prometheus
# 2. 打开
open http://localhost:8080/flowable-ui # 新版 React 设计器
open http://localhost:9090 # Grafana 大盘(用户名/密码 admin/admin)
九、升级 & 避坑指南(6.8 → 7.x)
|
坑点 |
解决方案 |
|---|---|
|
JDK 8 无法启动 |
必须先升级到 17+ |
|
javax.servlet.* 不存在 |
全部换成 jakarta.servlet.*;Tomcat 10+ / Jetty 11+ |
|
表单引擎被删 |
自建低代码平台或对接 React-Form-Renderer |
|
异步历史配置废弃 |
移除 async-history-executor;7.x 默认 批量异步刷盘 |
|
REST starter 改名 |
flowable-spring-boot-starter-basic → starter-process-rest |
十、结语
Flowable 7.x 在 2025 年已经不只是 BPMN 引擎,而是 → 云原生 + 事件驱动 + 决策 + 案例 的统一流程中台:
-
毫秒级启动、秒级弹性、10 万级吞吐量;
-
BPMN / CMMN / DMN 三标一体,一套设计器全搞定;
-
Spring Boot 3 + JDK 17+ 原生,GraalVM 原生镜像体积 < 80 MB;
-
ReactFlow 在线建模 + VSCode 插件,多人协同不再冲突;
-
官方 Prometheus + Kubernetes 集成,真正上云「开箱即用」。
如果你正在寻找轻量、可嵌入、又足够企业级的 Java 流程引擎,Flowable 7.x 就是当前(2025)最平衡的选择。
更多推荐


所有评论(0)