《Activiti权威指南》内容简介|作者

内容简介

本书从原理分析和企业应用两个方面,由浅入深,由易到难地对Activiti源码展开了系统深入的讲解,包括Activiti的底层架构设计思想以及缺陷修正、流程文档的解析、默认元素的解析、自定义元素的解析、事件转发器、事件清洗器等、定时作业、流程虚拟机(PVM)、事务、缓存以及会话缓存、监听器、封装MyBatis的整个过程、会签的实现(加签、退签和减签),节点跳转(常规节点、分支节点、会签节点),会签自定义权重实战,接管Activiti等等内容。

本书不仅介绍了如何合理的使用Activiti,还讲解了使用Activiti的误区和对框架中的部分缺陷进行修正已经优化扩展Activiti的技巧。从而使Activiti可以更好的为项目服务。从而帮助读者全面掌控和改造Activiti。如果你想要深入透彻地掌控和改造Activiti,那么这是你不可错过的一本干货书。

作者简介:

冀正 资深Java技术专家,长期从事Java软件开发工作,对Java程序设计、JVM、工作流(Activiti、Flowable)有深入的研究,对设计模式、大数据等技术有浓厚的兴趣,擅长系统的性能优化以及底层设计,多年的开发积累了丰富的经验,撰写了大量的工作流相关技术文章,深受读者的好评和追随。多年来一直从事OA、ERP、金融等系统的开发与架构设计工作,持续关注并深入研究工作流引擎。

目 录:

前言

1. 环境搭建

1.1 环境搭建

1.1.1 安装GitHub

1.1.2 安装Maven

1.2 编译源码

1.3 源码目录说明

1.4 安装流程设计器

1.5 工程搭建

2. 探险流程引擎

2.1 流程配置文件

2.1.1 Activiti配置风格

2.1.2 Spring配置风格

2.2 流程引擎架构

2.3 构造流程引擎实例对象

2.3.1 初始化流程引擎之Activiti配置风格

2.3.2 构造流程引擎实例对象

2.3.3 创建流程引擎配置类实例

2.3.4 初始化流程引擎

2.3.5 初始化流程引擎之Spring配置风格

2.4 初始化流程引擎配置类

2.5 配置器

2.5.1 初始化配置器

2.5.2 配置器实战

2.6 初始化流程引擎

2.6.1 操作引擎表

2.7 管理流程引擎

2.7.1 注册流程引擎

2.7.2 关闭流程引擎

2.8 流程引擎生命周期监听器

2.9 其他方式构造引擎实例

2.9.1 ProcessEngineConfiguration类创建引擎

2.9.2 编程方式创建引擎

3. 初识流程资源部署

3.1 流程资源概述

3.1.1 流程文档部署生命周期

3.1.2 DeploymentBuilder核心类

3.2 流程文档部署

3.2.1 定义流程文档

3.2.2 文本方式部署

3.2.3 classpath资源部署

3.2.4 流式部署

3.3 BpmnModel方式部署

3.4 校验BpmnModel实例对象

3.5 BpmnModel转换流程文档

3.6 流程文档转换BpmnModel

3.7 使用建议

4. 流程文档解析原理

4.1 文档解析基础

4.1.1 文档解析模型

4.1.2 Activiti文档解析技术选型演变

4.1.3 文档解析实战

4.2 元素解析功能架构设计

4.2.1 BPMN2.0元素概述

4.2.2 元素解析功能架构设计

4.2.3 开闭原则

4.2.4 元素与元素属性承载类以及元素解析器对应关系

4.2.5 元素属性承载类架构

4.3 元素解析环境准备

4.3.1 文档转换器

4.3.2 封装流程文档数据流

4.3.3 初始化元素解析器

4.3.4 文档转换器功能

4.3.5 元素解析环境准备

4.3.6 验证流程文档格式

4.4 元素解析

4.4.1 元素解析入口

4.4.2 解析根元素

4.4.3 黑名单处理机制

4.4.4 流程内元素解析入口

4.4.5 解析连线

4.4.6 获取元素坐标

4.5 子元素解析

4.5.1 初始化子元素解析器

4.5.2 解析子元素

4.5.3 解析扩展元素

4.6 节点与连线关联

5. 自定义元素解析

5.1 自定义元素解析原理

5.2 存储自定义元素属性值

5.3 自定义元素实战

5.4 扩展黑名单元素

5.4.1 扩展元素属性原理

5.4.2 任务节点扩展属性实战

5.5 扩展非黑名单元素

5.5.1 自定义元素解析器

5.5.2 替换引擎元素解析器

6. 事件转发器

6.1 初始化事件转发器

6.2 事件转发器架构

6.3 注册事件监听器

6.4 事件转发功能之新老版本兼容

6.5 事件转发原理以及缺陷

6.6 添加事件监听器

6.6.1 使用配置方式添加

6.6.2 动态添加

6.7 日志监听器

6.7.1 初始化日志监听器

6.7.2 初始化日志处理器

6.7.3 日志处理器架构

6.7.4 收集日志数据入口

6.8 日志清洗器架构

6.8.1 数据库日志清洗器

6.8.2 生成日志数据

6.8.3 日志存储

6.9 自定义日志清洗器

7. 流程文档部署原理

7.1 初始化部署器

7.1.1 初始化内置部署器

7.1.2 部署器依赖关系

7.2 部署命令

7.2.1 过滤重复文档

7.2.2 设置标识位

7.2.3 添加会话缓存

7.2.4 部署管理器

7.3 Bpmn部署器

7.3.1 获取资源信息

7.3.2 封装资源信息

7.3.3 校验资源名称

7.3.4 计算流程定义版本值

7.3.5 生成流程定义id值

7.3.6 移除过期作业

7.3.7 添加作业

7.3.8 处理消息

7.3.9 处理信号

7.3.10 设置流程启动人

7.4 自定义部署器实战

8. 缓存

8.1 背景

8.2 初始化缓存策略

8.3 部署管理器

8.4 缓存处理类架构

8.5 默认缓存处理类及Bug

8.6 流程定义缓存

8.6.1 自定义缓存处理类

8.6.2 验证自定义缓存处理类

8.7 Activiti新特性之节点缓存

8.8 节点缓存实战

8.9 节点缓存原理

8.9.1 初始化节点缓存数据

8.9.2 更新节点缓存

8.9.3 节点缓存架构

8.9.4 节点缓存使用误区

8.10 自定义节点缓存实战

8.10.1 自定义节点缓存类

8.10.2 修复Activiti节点缓存不更新Bug

8.10.3 扩展引擎配置类功能

8.10.4 配置器高级用法

8.10.5 使用自定义节点缓存类

8.11 任务节点缓存数据获取原理

8.11.1 获取任务节点缓存数据

8.11.2 解析任务节点缓存数据

8.11.3 运用任务节点缓存数据

8.12 动态修改任务节点缓存数据

8.13 节点缓存使用技巧

9. 定时作业

9.1 初始化作业执行器

9.2 初始化作业处理器

9.2.1 任务超时作业

9.2.2 定时任务作业

9.2.3 定时启动流程实例作业

9.2.4 其他作业

9.3 作业执行器原理

9.3.1 初始化作业执行器

9.3.2 启动作业执行器

9.4 添加定时作业

9.5 执行定时作业

9.5.1 查询作业

9.6 处理作业

9.6.1 批量处理作业

9.6.2 执行作业之异常处理

9.7 关闭作业执行器

9.8 自定义作业处理器

10. 流程虚拟机

10.1 流程虚拟机原理

10.2 虚拟机入口

10.3 流程定义转换准备

10.3.1 初始化对象解析器集合

10.3.2 初始化内置对象解析器

10.3.3 解析调度类BpmnParseHandlers

10.3.4 BpmnParseHandler架构

10.3.5 对象解析器架构

10.4 流程对象解析入口

10.5 流程子元素对象解析入口

10.5.1 任务节点对象解析器

10.5.2 创建ActivityImpl实例对象

10.5.3 多实例对象解析

10.5.4 连线对象解析

10.6 PvmProcessElement类架构

10.7 自定义对象解析器

10.7.1 任务节点扩展属性

10.7.2 自定义任务节点对象解析器

10.7.3 获取自定义属性

10.7.4 运用自定义对象解析器

10.8 流程虚拟机实战

10.8.1 获取流程虚拟机对象

10.8.2 入侵流程虚拟机

10.9 操作连线表达式

10.9.1 自动计算连线表达式

10.9.2 获取连线表达式

11. 监听器原理

11.1 监听器生命周期

11.2 内置记录监听器

11.2.1 内置任务记录监听器

11.2.2 内置执行记录监听器

11.3 历史解析器架构

11.3.1 添加内置记录监听器

11.3.2 初始化历史解析器

11.3.3 历史节点结束通知

11.3.4 控制归档历史数据级别

11.3.5 更新历史数据

11.3.6 历史节点开始通知

11.4 注入执行监听器

11.4.1 创建执行监听器

11.5 注入任务监听器

11.6 触发执行监听器

11.6.1 class方式调度

11.6.2 delegateExpression方式调度

11.6.3 expression方式调度

11.6.4 执行监听器触发入口

11.7 触发任务监听器

11.8 监听器代理

11.8.1 默认代理类

11.8.2 自定义代理类

11.9 自定义全局任务监听器

11.10 Activiti新特性之字段注射模式

12. Activiti之设计模式

12.1.1 命令模式的结构说明

12.1.2 命令模式实战

12.2 Activiti命令模式

12.2.1 初始化命令配置类

12.2.2 Activiti事务传播行为

12.2.3 Spring事务拦截器

12.2.4 初始化命令调度者

12.2.5 初始化命令上下文工厂

12.2.6 初始化命令拦截器

12.3 Activiti职责链模式

12.4 命令相关类职责

12.5 命令拦截器

12.5.1 日志拦截器

12.5.2 命令上下文拦截器

12.5.3 上下文类

12.5.4 创建命令上下文实例对象

12.5.5 命令调度者拦截器

12.6 自定义命令拦截器

12.7 命令类调度入口

12.8 Activiti事务

12.8.1 MyBatis事务管理

12.8.2 事务上下文架构

12.8.3 事务上下文工厂类

12.8.4 事务监听器

12.8.5 注册同步事务

13. 流程虚拟机运转

13.1 流程实例运转入口

13.2 启动流程实例命令类

13.2.1 获取ProcessDefinitionEntity实例对象

13.2.2 重新生成流程定义缓存数据

13.3 创建流程实例

13.3.1 创建ExecutionEntity实例对象

13.3.2 获取dataObject

13.3.3 区别流程实例与执行实例

13.3.4 添加历史流程实例数据

13.4 虚拟机运转原理

13.5 AtomicOperation架构

13.6 流程实例启动

13.6.1 非异步节点处理

13.6.2 异步节点处理

13.7 原子类流转

13.7.1 流程启动原子类

13.7.2 流程启动准备原子类

13.7.3 活动节点执行原子类

13.7.4 开始节点行为类

13.7.5 途经连线

13.7.6 通知连线完成原子类

13.7.7 连线销毁原子类

13.7.8 其他原子类

13.8 Activiti新特性之忽略节点

14. 行为篇

14.1 活动行为工厂类

14.1.1 初始化活动行为工厂类

14.1.2 活动行为类架构

14.2 排他网关行为类原理

14.3 扩展排他网关实战

14.3.1 自定义排他网关行为类

14.3.2 自定义活动行为工厂类

14.3.3 替换默认活动行为工厂类

14.4 任务节点处理人多元化配置

14.4.1 任务处理人扩展

14.4.2 自定义任务解析器

14.4.3 自定义任务行为类

14.4.4 自定义活动行为工厂类

14.5 忽略节点使用误区

14.6 修复Activiti忽略节点Bug

14.7 修复Activiti子流程业务键Bug

15. Activiti存储之MyBatis

15.1 初始化dataSource

15.2 Activiti数据访问层关系分析

15.2.1 实体类与数据库的映射

15.2.2 实例化SqlSessionFactory

15.3 自定义Mapper实战

15.3.1 自定义Mapper

15.3.2 自定义SQL执行原理

15.4 SessionFactory

15.4.1 初始化SessionFactory

15.4.2 SessionFactory架构

15.5 Session

15.5.1 Session架构

15.5.2 实例化方式创建Session实例

15.5.3 反射方式创建Session实例

15.5.4 实例化DbSqlSession

15.6 SQL语句

15.6.1 SQL语句适配器

15.6.2 SQL执行id值生成规则

15.7 数据层和数据的关系

15.7.1 PersistentObject业务对象

15.7.2 实体管理类

15.8 添加会话缓存

15.9 更新操作

15.9.1 会话缓存方式更新

15.9.2 SqlSession方式更新

15.10 删除操作

15.10.1 DeleteOperation接口

15.10.2 BulkDeleteOperation删除数据

15.10.3 CheckedDeleteOperation删除数据

15.10.4 乐观锁

15.11 刷新会话缓存入口

15.12 会话缓存数据持久化

15.12.1 移除不必要数据

15.12.2 刷新序列化变量

15.12.3 获取更新对象

15.12.4 刷新数据

15.12.5 解决依赖数据插入先后顺序

15.12.6 性能优化

16. 实战

16.1 高并发id生成器

16.1.1 id生成器初始化

16.1.2 自增id生成器

16.1.3 自定义主键生成器

16.2 变量类型

16.2.1 初始化变量管理类

16.2.2 变量管理类架构

16.2.3 变量处理类

16.2.4 自定义变量处理类

16.3 ServiceLoader方式注入配置器

16.4 节点跳转

16.4.1 常规节点跳转

16.4.2 分支节点跳转

16.4.3 多实例节点跳转

16.5 会签

16.5.1 串行多实例

16.5.2 认领和归还任务

16.5.3 代理任务

16.5.4 并行多实例

16.5.5 加签

16.5.6 减签和退签

16.6 会签节点自定义权重实现

16.6.1 定义处理人权重

16.6.2 获取权重信息并自动计算

16.6.3 优化建议

16.7 接管Activiti

16.7.1 接管Activiti映射文件

16.7.2 禁用用户表和组表

16.7.3 自定义用户角色和部门表

16.7.4 扩展任务节点参与者表

16.7.5 自定义任务节点参与者命令类

16.7.6 流程文档支持设置部门属性

16.7.7 解析及运用流程文档部门属性

16.7.8 自定义代办SQL

16.8 接管Activiti实体管理类

为您推荐

《谢米尔的小潜水艇》内容简介|作者

内容简介 好的幻想小说都是成长小说,它长久不衰的魅力,在于它能帮孩子处理成长过程中必须面对的内心冲突。它是一面镜子,能照出孩子的自我;是孩子们演练内心冲突的一个舞台;是一次孩子们的自我发现之旅。 日本大幻想文学..

《高考英语高分作文字帖》内容简介|作者

内容简介书籍特色 这是一套对英文字母、单词、短语、句子、文章书法练习的字帖,根据习字者的书法水平和英语程度,由浅入深,由易到难,通过循序渐进的练习,帮助习字者快速提高书..

《魏晋唐小楷-中国历代名碑名帖精选》内容简介|作者

内容简介书籍特色 为传承和发扬传统文化,江西美术出版社北京分社推出《中国历代名碑名帖精选》系列图书,让我们从这里抵达华夏文明的深处。  书法艺术是中华文化瑰宝,古人..

《王福庵印谱-全3册》内容简介|作者

《硬笔楷书入门字帖》内容简介|作者

内容简介书籍特色 广大学生和书法爱好者书写汉字,力求规范、端正、整洁,能用钢笔熟练地书写正楷字,逐步提高书写速度,规范书写习惯。随着国家对传统文化越来越重视,写一手好的..

《李文采临王羲之圣教序碑》内容简介|作者

内容简介本书由僧人怀仁集王羲之书而成。怀仁从唐内府所藏王羲之书迹及民间王字遗墨中集《圣教序》, 历时二十四年。前人评价此碑: “天衣无缝, 胜于自运”, “逸少真迹, 咸萃其中”。由于王羲之真迹不存, 此碑是后人..

《李文采临李邕李思训碑》内容简介|作者

内容简介本书精选历代著名碑帖 (自殷商至近代) 影印出版, 纵贯中国书法史, 更加精当合理, 底本注重艺术性与版本价值相结合, 是广大读者学习书法艺术的首选法帖。碑高一丈一尺三寸六分, 宽四尺八寸五分。字共三十行,..