【Flowable 7.2 源码深度解析与实战】

Flowable 7.2 源码深度解析与实战

前言 - 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 未来展望
  • 读者交流与反馈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值