为什么还要学 Activiti 6.0?

现在业界谈工作流,很多人第一反应是 Camunda 或者自研引擎。但翻开传统企业尤其是金融、政务、制造领域的遗留系统,以及大量中大型项目的审批模块,底层跑的还是 Activiti。这并非出于怀旧,而是因为它的持久化模型极其扎实,BPMN 2.0 标准的落地程度在 Java 生态里几乎是标杆。对于备考中级/高级后端开发、或者准备进入这类重业务系统的求职者来说,不懂 Activiti 意味着看不懂核心业务代码,也写不出规范的审批流。

本课程专门针对 Activiti 6.0 版本展开。选 6.0 而不是最新的 7.x 或 Camunda,是因为 6.0 是目前存量代码中最常见的版本,API 调用方式相对固定,适合作为理解“流程引擎是如何工作的”这一底层逻辑的切入点。如果你之前只听说过“流程节点”、“待办任务”这些概念,但从未亲手通过 Java API 控制过它们的生命周期,这门课就是来补这块缺口的。

学习路径与核心能力缺口

这门课的前半部分(第 1-5 讲)并不是简单的环境安装教程,而是带你建立“引擎配置”的全局观。很多初学者直接跳过去看代码,结果部署流程时总报数据库连接错或表结构缺失。课程特意安排了“运行官方例子”和“数据库介绍”,这是为了让你明白:Activiti 不是单纯的 Jar 包,它是一个依赖特定表结构运行的容器。你需要清楚 `ACT_RE_*`(仓库表)、`ACT_HI_*`(历史表)这些前缀代表什么,否则后续排查“流程实例挂起”时会毫无头绪。

真正的硬骨头在第 6-13 讲的 API 实操。这里涉及四个核心服务组件:RepositoryService(资源管理)、RuntimeService(运行期控制)、TaskService(任务操作)和 HistoryService(历史查询)。课程通过“编写第一个程序”到“任务参数与附件”的递进,覆盖了从流程定义部署、流程启动、任务领取到变量传递的完整闭环。特别是第 10 讲的任务参数与附件,这是实际开发中对接表单数据的关键,很多面试也会追问“如何通过 API 动态设置任务候选组”。

后半部分(第 14-15 讲)切入 BPMN 事件,这是区分“会用 API”和“懂流程设计”的分水岭。开始事件的细分类型(定时器、消息触发等)决定了流程的启动时机。如果你只能写出串行流程,遇到需要“消息通知”或“延时触发”的场景就会卡壳。这部分内容虽少,但是理解复杂审批逻辑的基础。

资料配合与学后目标

课程提供的视频是主线,但切忌只看不动手。Activiti 的实践性极强,必须配合本地搭建的开发环境。建议你在观看第 1-4 讲时,同步在 IDE 中配置好 Maven 依赖和 MySQL 数据源,确保能跑通官方示例。第 5 讲讲完数据库后,务必去数据库里查一下生成的表,对比视频中的讲解,确认每张表的作用。

从第 6 讲开始,每看完一个 API 案例,都要自己重写一遍代码,并尝试修改其中的参数,观察流程执行的变化。例如,在第 9 讲任务操作环节,尝试改变任务的负责人,看 RuntimeService 的查询结果如何响应。这种“破坏性实验”比单纯抄代码更能巩固记忆。

学完本系列后,你应该能够独立回答以下问题:如何在 Spring 环境中集成 Activiti 引擎?如何编程式地部署一个 BPMN 流程图?如何在流程运行时动态设置任务变量?如何查询某个用户的所有待办任务及历史轨迹?更重要的是,当业务流程需要从简单的串行审批升级为包含并行网关或异常捕获的复杂模型时,你具备通过阅读 BPMN 规范来设计节点的能力。这套基础打牢后,再迁移到 Camunda 或其他工作流引擎,你会发现底层思维是相通的。

课程目录

1 Activiti介绍与搭建开发环境 (18:47)
2 运行官方例子 (15:49)
3 编写第一个Activiti程序 (29:32)
4 流程引擎配置与服务组件 (18:23)
5 Activiti数据库介绍 (20:04)
6 API(1)Activiti数据查询 (23:43)
7 API(2)流程文件部署 (35:29)
8 API(3)流程定义 (33:13)
9 API(4)任务操作 (23:34)
10 API(5)任务参数与附件 (32:14)
11 API(6)启动流程 (29:55)
12 API(7)流程操作与数据查询 (26:53)
13 API(8)工作的产生与管理 (30:58)
14 BPMN事件(1)事件的分类与定义 (17:33)
15 BPMN事件(2)开始事件 (32:36)