辽源市网站建设_网站建设公司_门户网站_seo优化
2026/1/16 16:24:39 网站建设 项目流程

基于 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)最平衡的选择。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询