Flowable 7.2 源码深度解析与实战
-
- [前言 - Flowable 7.2 新特性概览](#前言 - Flowable 7.2 新特性概览)
- [第1章 环境搭建与项目结构解析](#第1章 环境搭建与项目结构解析)
-
- [1.1 源码获取与编译 - 从 GitHub 克隆 Flowable 7.2 源码](#1.1 源码获取与编译 - 从 GitHub 克隆 Flowable 7.2 源码)
- [1.2 项目模块架构详解 - 核心模块梳理(flowable-engine、flowable-engine-common 等)](#1.2 项目模块架构详解 - 核心模块梳理(flowable-engine、flowable-engine-common 等))
- [1.3 启动第一个 Flowable 应用 - 最小化配置示例](#1.3 启动第一个 Flowable 应用 - 最小化配置示例)
- [1.4 源码阅读方法与调试技巧 - 推荐的源码阅读顺序](#1.4 源码阅读方法与调试技巧 - 推荐的源码阅读顺序)
- [第2章 流程引擎核心架构设计](#第2章 流程引擎核心架构设计)
-
- [2.1 ProcessEngine 体系结构 - ProcessEngine 接口设计](#2.1 ProcessEngine 体系结构 - ProcessEngine 接口设计)
- [2.2 服务层设计(7大核心服务) - RepositoryService](#2.2 服务层设计(7大核心服务) - RepositoryService)
- [2.3 命令模式与拦截器链 - Command 设计模式应用](#2.3 命令模式与拦截器链 - Command 设计模式应用)
- [2.4 配置体系深度解析 - ProcessEngineConfiguration 设计](#2.4 配置体系深度解析 - ProcessEngineConfiguration 设计)
- [第3章 流程部署与解析机制](#第3章 流程部署与解析机制)
-
- [3.1 部署流程源码解析 - DeploymentBuilder 使用与实现](#3.1 部署流程源码解析 - DeploymentBuilder 使用与实现)
- [3.2 BPMN 2.0 解析器 - BpmnParser 设计与实现](#3.2 BPMN 2.0 解析器 - BpmnParser 设计与实现)
- [3.3 流程定义验证器 - 验证规则体系](#3.3 流程定义验证器 - 验证规则体系)
- [3.4 流程定义缓存与查询 - 缓存机制实现](#3.4 流程定义缓存与查询 - 缓存机制实现)
- [第4章 流程实例启动与执行引擎](#第4章 流程实例启动与执行引擎)
-
- [4.1 流程实例启动流程 - RuntimeService.startProcessInstance() 源码追踪](#4.1 流程实例启动流程 - RuntimeService.startProcessInstance() 源码追踪)
- [4.2 Agenda 执行调度器 - Agenda 模式设计原理](#4.2 Agenda 执行调度器 - Agenda 模式设计原理)
- [4.3 执行上下文与 ExecutionEntity - ExecutionEntity 核心结构](#4.3 执行上下文与 ExecutionEntity - ExecutionEntity 核心结构)
- [4.4 流程流转核心逻辑 - 节点切换机制](#4.4 流程流转核心逻辑 - 节点切换机制)
- [4.5 子流程与调用活动 - 子流程实现原理](#4.5 子流程与调用活动 - 子流程实现原理)
- [第5章 用户任务与人工交互](#第5章 用户任务与人工交互)
-
- [5.1 UserTask 实现原理 - UserTaskBehavior 源码解析](#5.1 UserTask 实现原理 - UserTaskBehavior 源码解析)
- [5.2 任务查询与管理 - TaskQuery 构建器](#5.2 任务查询与管理 - TaskQuery 构建器)
- [5.3 候选人与候选组机制 - IdentityLink 设计](#5.3 候选人与候选组机制 - IdentityLink 设计)
- [5.4 任务表单与表单数据 - FormService 实现](#5.4 任务表单与表单数据 - FormService 实现)
- [5.5 任务委托与委派 - 委托机制源码](#5.5 任务委托与委派 - 委托机制源码)
- [第6章 变量体系与表达式引擎](#第6章 变量体系与表达式引擎)
-
- [6.1 变量类型系统 - VariableType 体系设计](#6.1 变量类型系统 - VariableType 体系设计)
- [6.2 变量存储与持久化 - VariableService 实现](#6.2 变量存储与持久化 - VariableService 实现)
- [6.3 表达式引擎(JUEL)集成 - JuelScriptEngine 实现](#6.3 表达式引擎(JUEL)集成 - JuelScriptEngine 实现)
- [6.4 表达式在流程中的应用 - 网关条件判断](#6.4 表达式在流程中的应用 - 网关条件判断)
- [6.5 变量监听与事件 - VariableListener 设计](#6.5 变量监听与事件 - VariableListener 设计)
- [第7章 网关与分支控制](#第7章 网关与分支控制)
-
- [7.1 独占网关(Exclusive Gateway) - ExclusiveGatewayActivityBehavior 源码](#7.1 独占网关(Exclusive Gateway) - ExclusiveGatewayActivityBehavior 源码)
- [7.2 并行网关(Parallel Gateway) - ParallelGatewayActivityBehavior 实现](#7.2 并行网关(Parallel Gateway) - ParallelGatewayActivityBehavior 实现)
- [7.3 包容网关(Inclusive Gateway) - InclusiveGatewayActivityBehavior 原理](#7.3 包容网关(Inclusive Gateway) - InclusiveGatewayActivityBehavior 原理)
- [7.4 事件网关(Event Gateway) - EventGatewayActivityBehavior 设计](#7.4 事件网关(Event Gateway) - EventGatewayActivityBehavior 设计)
- [7.5 网关性能优化 - 网关实现对比](#7.5 网关性能优化 - 网关实现对比)
- [第8章 异步执行与定时任务](#第8章 异步执行与定时任务)
-
- [8.1 异步执行器(AsyncExecutor) - AsyncExecutor 接口设计](#8.1 异步执行器(AsyncExecutor) - AsyncExecutor 接口设计)
- [8.2 Job 体系设计 - JobEntity 核心结构](#8.2 Job 体系设计 - JobEntity 核心结构)
- [8.3 定时器(Timer)实现 - TimerEventDefinition 解析](#8.3 定时器(Timer)实现 - TimerEventDefinition 解析)
- [8.4 异步历史记录 - AsyncHistoryExecutor 设计](#8.4 异步历史记录 - AsyncHistoryExecutor 设计)
- [8.5 外部任务(External Task) - ExternalTaskService 实现](#8.5 外部任务(External Task) - ExternalTaskService 实现)
- [第9章 历史数据管理](#第9章 历史数据管理)
-
- [9.1 历史级别配置 - HistoryLevel 枚举解析](#9.1 历史级别配置 - HistoryLevel 枚举解析)
- [9.2 历史实体设计 - HistoricProcessInstance](#9.2 历史实体设计 - HistoricProcessInstance)
- [9.3 历史事件监听与记录 - HistoryManager 实现](#9.3 历史事件监听与记录 - HistoryManager 实现)
- [9.4 历史查询 API - HistoryService 查询方法](#9.4 历史查询 API - HistoryService 查询方法)
- [9.5 历史数据清理 - HistoryCleaningManager](#9.5 历史数据清理 - HistoryCleaningManager)
- [第10章 持久化层与 MyBatis 集成](#第10章 持久化层与 MyBatis 集成)
-
- [10.1 持久化架构设计 - Entity 与 EntityManager 模式](#10.1 持久化架构设计 - Entity 与 EntityManager 模式)
- [10.2 核心实体与表结构 - Execution 表设计](#10.2 核心实体与表结构 - Execution 表设计)
- [10.3 MyBatis 映射与 SQL - Mapper XML 解析](#10.3 MyBatis 映射与 SQL - Mapper XML 解析)
- [10.4 事务管理与并发控制 - 事务上下文(TransactionContext)](#10.4 事务管理与并发控制 - 事务上下文(TransactionContext))
- [10.5 数据库兼容性 - 多数据库支持实现](#10.5 数据库兼容性 - 多数据库支持实现)
- [第11章 事件机制与监听器](#第11章 事件机制与监听器)
-
- [11.1 Flowable 事件体系 - FlowableEvent 接口](#11.1 Flowable 事件体系 - FlowableEvent 接口)
- [11.2 事件分发器(EventDispatcher) - EventDispatcher 设计](#11.2 事件分发器(EventDispatcher) - EventDispatcher 设计)
- [11.3 执行监听器(ExecutionListener) - ExecutionListener 接口](#11.3 执行监听器(ExecutionListener) - ExecutionListener 接口)
- [11.4 任务监听器(TaskListener) - TaskListener 接口](#11.4 任务监听器(TaskListener) - TaskListener 接口)
- [11.5 自定义事件与扩展 - 自定义事件定义](#11.5 自定义事件与扩展 - 自定义事件定义)
- [第12章 Spring 集成与 Spring Boot 自动配置](#第12章 Spring 集成与 Spring Boot 自动配置)
-
- [12.1 Spring 集成基础 - SpringProcessEngineConfiguration](#12.1 Spring 集成基础 - SpringProcessEngineConfiguration)
- [12.2 Spring Boot 自动配置 - FlowableAutoConfiguration 解析](#12.2 Spring Boot 自动配置 - FlowableAutoConfiguration 解析)
- [12.3 Spring 事务与 Flowable 事务 - 事务传播行为](#12.3 Spring 事务与 Flowable 事务 - 事务传播行为)
- [12.4 Spring 事件与 Flowable 事件桥接 - SpringApplicationEvent 集成](#12.4 Spring 事件与 Flowable 事件桥接 - SpringApplicationEvent 集成)
- [12.5 Spring Boot Actuator 集成 - Flowable 端点实现](#12.5 Spring Boot Actuator 集成 - Flowable 端点实现)
- [第13章 实战:自定义扩展开发](#第13章 实战:自定义扩展开发)
-
- [13.1 自定义 ActivityBehavior - ActivityBehavior 接口](#13.1 自定义 ActivityBehavior - ActivityBehavior 接口)
- [13.2 自定义 BPMN 元素 - BpmnParseHandler 实现](#13.2 自定义 BPMN 元素 - BpmnParseHandler 实现)
- [13.3 自定义命令与拦截器 - Command 接口实现](#13.3 自定义命令与拦截器 - Command 接口实现)
- [13.4 自定义持久化 - 自定义 Entity](#13.4 自定义持久化 - 自定义 Entity)
- [13.5 实战项目:审批流系统 - 需求分析与设计](#13.5 实战项目:审批流系统 - 需求分析与设计)
- [第14章 性能调优与监控](#第14章 性能调优与监控)
-
- [14.1 性能瓶颈分析 - 常见性能问题](#14.1 性能瓶颈分析 - 常见性能问题)
- [14.2 数据库优化 - 索引优化策略](#14.2 数据库优化 - 索引优化策略)
- [14.3 缓存策略优化 - 流程定义缓存](#14.3 缓存策略优化 - 流程定义缓存)
- [14.4 异步执行优化 - 线程池调优](#14.4 异步执行优化 - 线程池调优)
- [14.5 监控与告警 - JMX 监控](#14.5 监控与告警 - JMX 监控)
- [第15章 高级特性与生产实践](#第15章 高级特性与生产实践)
-
- [15.1 多租户(Multi-Tenancy) - 多租户架构设计](#15.1 多租户(Multi-Tenancy) - 多租户架构设计)
- [15.2 流程版本与迁移 - ProcessMigrationService](#15.2 流程版本与迁移 - ProcessMigrationService)
- [15.3 集群部署与高可用 - 集群架构设计](#15.3 集群部署与高可用 - 集群架构设计)
- [15.4 安全与权限 - 身份认证集成](#15.4 安全与权限 - 身份认证集成)
- [15.5 生产环境最佳实践 - 部署架构建议](#15.5 生产环境最佳实践 - 部署架构建议)
- [附录 - Flowable 7.2 完整 API 索引](#附录 - Flowable 7.2 完整 API 索引)
- [后记 - 学习路径总结](#后记 - 学习路径总结)
前言 - Flowable 7.2 新特性概览
- 为什么要读 Flowable 源码
- 本书阅读路线图
- 前置知识要求
第1章 环境搭建与项目结构解析
1.1 源码获取与编译 - 从 GitHub 克隆 Flowable 7.2 源码
- Maven 项目结构概览
- 源码编译与环境配置(JDK 17+)
- IDEA 项目导入与配置
1.2 项目模块架构详解 - 核心模块梳理(flowable-engine、flowable-engine-common 等)
- 模块依赖关系分析
- 核心功能模块职责划分
1.3 启动第一个 Flowable 应用 - 最小化配置示例
- ProcessEngine 初始化流程
- 数据库表结构解析
1.4 源码阅读方法与调试技巧 - 推荐的源码阅读顺序
- 断点调试技巧
- 日志配置与关键日志解读
第2章 流程引擎核心架构设计
2.1 ProcessEngine 体系结构 - ProcessEngine 接口设计
- ProcessEngineImpl 实现原理
- 引擎生命周期管理
2.2 服务层设计(7大核心服务) - RepositoryService
- RuntimeService
- TaskService
- HistoryService
- IdentityService
- ManagementService
- FormService
2.3 命令模式与拦截器链 - Command 设计模式应用
- CommandExecutor 实现原理
- 拦截器链源码解析
- 事务管理机制
2.4 配置体系深度解析 - ProcessEngineConfiguration 设计
- 配置初始化流程
- 自定义配置扩展点
第3章 流程部署与解析机制
3.1 部署流程源码解析 - DeploymentBuilder 使用与实现
- 资源解析与存储
- 部署版本管理
- 部署缓存机制
3.2 BPMN 2.0 解析器 - BpmnParser 设计与实现
- XML 解析与元素映射
- 流程定义构建过程
- 自定义元素解析扩展
3.3 流程定义验证器 - 验证规则体系
- ProcessValidator 源码解析
- 自定义验证规则
3.4 流程定义缓存与查询 - 缓存机制实现
- 查询构建器设计
- 动态更新流程定义
第4章 流程实例启动与执行引擎
4.1 流程实例启动流程 - RuntimeService.startProcessInstance() 源码追踪
- 流程实例创建过程
- 执行树构建
- 变量初始化与传递
4.2 Agenda 执行调度器 - Agenda 模式设计原理
- FlowableEngineAgenda 实现
- Operation 执行机制
- 调试模式下的执行追踪
4.3 执行上下文与 ExecutionEntity - ExecutionEntity 核心结构
- 执行树结构设计
- 上下文传递机制
- 父子执行关系管理
4.4 流程流转核心逻辑 - 节点切换机制
- 条件表达式计算
- 序列流选择
- 并发与同步控制
4.5 子流程与调用活动 - 子流程实现原理
- CallActivity 调用机制
- 变量作用域管理
第5章 用户任务与人工交互
5.1 UserTask 实现原理 - UserTaskBehavior 源码解析
- 任务创建与分配机制
- 任务监听器(TaskListener)
5.2 任务查询与管理 - TaskQuery 构建器
- 查询优化与索引设计
- 任务认领、完成、转办
5.3 候选人与候选组机制 - IdentityLink 设计
- CandidateManager 实现
- 动态候选人计算
5.4 任务表单与表单数据 - FormService 实现
- 表单属性管理
- 动态表单处理
5.5 任务委托与委派 - 委托机制源码
- 任务转交与回退
- 多实例任务
第6章 变量体系与表达式引擎
6.1 变量类型系统 - VariableType 体系设计
- 内置类型详解
- 自定义变量类型
6.2 变量存储与持久化 - VariableService 实现
- 变量表结构解析
- 大对象(LOB)处理
- 变量版本与历史
6.3 表达式引擎(JUEL)集成 - JuelScriptEngine 实现
- 表达式解析与执行
- 变量解析器
- 函数注册与扩展
6.4 表达式在流程中的应用 - 网关条件判断
- 任务分配表达式
- 服务任务参数
- 表达式安全机制
6.5 变量监听与事件 - VariableListener 设计
- 事件触发机制
- 变量变更通知
第7章 网关与分支控制
7.1 独占网关(Exclusive Gateway) - ExclusiveGatewayActivityBehavior 源码
- 条件评估逻辑
- 默认分支处理
7.2 并行网关(Parallel Gateway) - ParallelGatewayActivityBehavior 实现
- 并行分支同步机制
- 计数与等待逻辑
7.3 包容网关(Inclusive Gateway) - InclusiveGatewayActivityBehavior 原理
- 多条件匹配机制
- 复杂场景处理
7.4 事件网关(Event Gateway) - EventGatewayActivityBehavior 设计
- 事件订阅与触发
- 竞争机制实现
7.5 网关性能优化 - 网关实现对比
- 性能瓶颈分析
- 优化建议与实践
第8章 异步执行与定时任务
8.1 异步执行器(AsyncExecutor) - AsyncExecutor 接口设计
- DefaultAsyncJobExecutor 实现
- 线程池配置与管理
- 作业队列机制
8.2 Job 体系设计 - JobEntity 核心结构
- Job 类型分类
- JobHandler 机制
- 重试策略实现
8.3 定时器(Timer)实现 - TimerEventDefinition 解析
- TimerJobHandler 源码
- 时间表达式解析
- 日历与业务时间
8.4 异步历史记录 - AsyncHistoryExecutor 设计
- 历史数据异步写入
- 批量处理优化
- 历史清理机制
8.5 外部任务(External Task) - ExternalTaskService 实现
- 外部工作者集成
- 锁机制与超时处理
第9章 历史数据管理
9.1 历史级别配置 - HistoryLevel 枚举解析
- 各级别数据收集策略
- 动态级别切换
9.2 历史实体设计 - HistoricProcessInstance
- HistoricActivityInstance
- HistoricVariableInstance
- HistoricDetail 体系
9.3 历史事件监听与记录 - HistoryManager 实现
- 事件监听机制
- 历史数据写入流程
9.4 历史查询 API - HistoryService 查询方法
- 查询优化与索引
- 分页与排序
9.5 历史数据清理 - HistoryCleaningManager
- 清理策略配置
- 定时清理实现
第10章 持久化层与 MyBatis 集成
10.1 持久化架构设计 - Entity 与 EntityManager 模式
- DataManager 抽象层
- MyBatis 映射配置
10.2 核心实体与表结构 - Execution 表设计
- Task 表设计
- Variable 表设计
- History 表设计
10.3 MyBatis 映射与 SQL - Mapper XML 解析
- 动态 SQL 生成
- 查询优化技巧
10.4 事务管理与并发控制 - 事务上下文(TransactionContext)
- 乐观锁实现
- 死锁预防机制
- 事务监听器
10.5 数据库兼容性 - 多数据库支持实现
- 方言机制
- 数据库特有优化
第11章 事件机制与监听器
11.1 Flowable 事件体系 - FlowableEvent 接口
- 事件类型枚举
- 事件对象结构
11.2 事件分发器(EventDispatcher) - EventDispatcher 设计
- 事件注册与监听
- 同步与异步事件
- 事件过滤机制
11.3 执行监听器(ExecutionListener) - ExecutionListener 接口
- 监听器注册方式
- 执行上下文获取
- 常见应用场景
11.4 任务监听器(TaskListener) - TaskListener 接口
- 任务事件类型
- 任务属性修改
- 动态分配实现
11.5 自定义事件与扩展 - 自定义事件定义
- 事件发布与订阅
- 事件总线集成
第12章 Spring 集成与 Spring Boot 自动配置
12.1 Spring 集成基础 - SpringProcessEngineConfiguration
- 事务管理器集成
- 表达式与 Spring Bean
- 服务自动装配
12.2 Spring Boot 自动配置 - FlowableAutoConfiguration 解析
- 配置属性绑定
- 条件化自动装配
- Starter 依赖管理
12.3 Spring 事务与 Flowable 事务 - 事务传播行为
- 事务同步机制
- 异常处理与回滚
12.4 Spring 事件与 Flowable 事件桥接 - SpringApplicationEvent 集成
- 事件桥接实现
- 监听器自动注册
12.5 Spring Boot Actuator 集成 - Flowable 端点实现
- 健康检查
- 指标收集
- 自定义监控扩展
第13章 实战:自定义扩展开发
13.1 自定义 ActivityBehavior - ActivityBehavior 接口
- 自定义任务类型实现
- 行为注册与配置
- 单元测试编写
13.2 自定义 BPMN 元素 - BpmnParseHandler 实现
- XML 元素解析
- 图形化扩展
- 部署与验证
13.3 自定义命令与拦截器 - Command 接口实现
- 自定义拦截器
- 命令执行器扩展
- 权限控制示例
13.4 自定义持久化 - 自定义 Entity
- EntityManager 实现
- MyBatis Mapper 扩展
- 数据迁移
13.5 实战项目:审批流系统 - 需求分析与设计
- 核心功能实现
- 性能优化
- 部署与运维
第14章 性能调优与监控
14.1 性能瓶颈分析 - 常见性能问题
- Profiling 工具使用
- 热点代码定位
14.2 数据库优化 - 索引优化策略
- SQL 调优
- 连接池配置
- 批量处理优化
14.3 缓存策略优化 - 流程定义缓存
- 二级缓存配置
- 缓存失效策略
- 分布式缓存集成
14.4 异步执行优化 - 线程池调优
- 队列配置
- 批量作业处理
- 失败重试策略
14.5 监控与告警 - JMX 监控
- Micrometer 指标
- Prometheus + Grafana
- 告警规则配置
第15章 高级特性与生产实践
15.1 多租户(Multi-Tenancy) - 多租户架构设计
- 租户隔离机制
- 共享与隔离策略
- 数据迁移方案
15.2 流程版本与迁移 - ProcessMigrationService
- 运行中流程迁移
- 数据兼容性处理
- 回滚策略
15.3 集群部署与高可用 - 集群架构设计
- 作业执行协调
- 缓存一致性
- 故障转移机制
15.4 安全与权限 - 身份认证集成
- 权限控制实现
- 数据脱敏
- 审计日志
15.5 生产环境最佳实践 - 部署架构建议
- 配置参数调优
- 运维监控方案
- 常见问题排查
附录 - Flowable 7.2 完整 API 索引
- 数据库表结构完整文档
- 配置属性完整列表
- 核心类速查表
- 参考资料与扩展阅读
后记 - 学习路径总结
- 社区贡献指南
- Flowable 未来展望
- 读者交流与反馈