Activiti权威指南 书重磅来袭,工作流开发者的福音

这是一本深入讲解Activiti的书,这是一本干货书,不仅有源码的讲解,还有基于源码讲解基础之上的实战讲解,这是一本诚意十足的书,这是一本深入讲解Activiti内核的书,这是一本真正企业级实战的书。

Activiti权威指南这本书历经磨难!也侧面印证一句老话,慢工出细活。

2015年5月12号开始整理书写。2017年1月交稿,交稿半年,终将上市!比预期上市时间推迟了5个月之久!

关于原因,包括:Activiti源码分析过于复杂,书中追求全面而有深度;真实的企业级应用使用场景过于复杂以及不通用,抽取通用的代码以及降低读者的理解度;真实案例可能导致侵权,导致审查不通过;本书原定14章节,为了达到了解原理,看懂源码的基础之上能更好的实战,辞职2个月在家增加了2个章节的实战内容;Activiti每个版本的功能都稍有改动,源码尽量无盲区;其他人为原因……


天猫书店购买地址:清华大学出版社购买,https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.1.d811797Kszv0W&id=555002352903&areaId=110100&user_id=1020536390&cat_id=2&is_b=1&rn=f0e95d17ac5d764fdcd9b569b2ed16e1

京东购买地址http://item.jd.com/10736015710.html


总之,我一次次的催促出本社的出版进度,一次次的无奈,一次次的告诉大家预估时间,终于没有让大家白等,也算对自己的劳动成果有个交代……

本书在三审三校中错误率为万分之一,这也侧面说明了书的质量。

不过,不管怎么样,这本书终于能够在2017年6月5号开始印刷印上市了……

快则2017年6月中旬之前,慢则2017年6月底就能够与大家见面。

这本书是完完全全原理+企业级实战的的一本书。

通过原理的讲解为驱动,由浅入深由易到难的讲解了Activiti的方方面面。包括源码的分析、Activiti自身框架的缺陷以及BUG、修复了一系列的Activiti框架级别的BUG。从而达到学以致用的目的。

这样做的好处,就是贴近开发人员在实际项目开发中中遇到的种种问题。

并且可以通过本书的所阐述的知识点和实际的应用进行结合。

可以说,这是一本诚意十足的书,敬请您的评鉴。

以下,是这本书详细的内容简介。

————————————————————————————————

内容简介:

本书旨在深入学习Activiti的内部处理机制。由浅入深、由易到难地对Activiti源码展开了系统的讲解和扩展,并对框架中的部分缺陷进行修正,从而可以使读者更加灵活的运用和改造Activiti

本书分为16章:

            第1章介绍Activiti环境搭建、设计器的安装、源码的获取和编译;

            第2章详细讲解了流程配置文件的创建方式,流程引擎的架构、流程引擎配置类和流程引擎的创建内部实现机制,配置器的使用以及注意事项,流程引擎的管理以及流程引擎生命周期监听器的使用;

            第3章讲解流程资源的部署、各种部署方式以及BpmnModel与流程文档之间的转换和格式校验;

            第4章浓墨重彩的讲解流程文档解析原理和架构思想,包括文档转换器、流程元素解析、外围元素解析、根元素解析、流程元素解析、扩展元素解析、子元素解析、连线元素、黑名单机制以及元素解析器的架构设计;

            第5章详细讲解自定义元素的解析,包括自定义元素的解析原理、自定义元素的存储、黑名单元素以及非黑名单元素解析实战;

            第6章介绍事件转发器的内部实现机制,包括事件转发器的初始化、架构、注册方式,日志监听器的使用和扩展,日志清洗器的架构和自定义日志清洗器的使用;

            第7章深入剖析流程文档部署的内部实现机制,包括内置部署器的使用、部署命令以及自定义部署器实战;

            第8章讲解流程定义缓存的使用,包括自定义缓存处理类、节点缓存(新特性)的使用和Bug修复,以及配置器的高级使用技巧从而可以使流程信息彻底动态化;

             第9章讲解了定时器的使用、运行原理以及自定义作业处理器实战;

             第10章讲解流程虚拟机的内部处理机制,包括对象解析器架构、自定义对象解析器、无缝入侵虚拟机以及操作表达式;

            第11章讲解监听器原理,包括监听器的生命周期,内置记录监听器,历史解析器的架构设计,监听器的触发时机和监听器代理类、自定义全局监听器的实现和字段注射模式(新特性);

            第12章讲解Activiti中使用的命令模式,包括职责链模式,事务处理、事务上下文、事务监听器以及同步事务;

             第13章讲解流程虚拟机运转的整个过程以及各种原子类的功能边界和职责,包括异步与非异步节点处理和忽略节点功能;

            第14章讲解各种活动行为类的原理,包括排他网关行为类、自定义行为类,任务节点处理人多元化、多维度的处理,忽略节点使用误区以及Bug修复、子流程业务键Bug修复;

           第15章讲解MyBatis框架在Activiti中的使用,包括初始化数据源、数据访问层关系分析,自定义Mapper实战,Session架构、SessionFactory架构,SQL语句适配器、SQL执行id值生成规则,实体管理类,乐观锁,会话缓存的构建以及刷新过程;

          第16章实现高并发id生成器,讲解了变量类型的原理以及自定义变量处理类、ServiceLoader方式注入配置器,任务的认领、归还、代理任务、会签的实现(加签、退签和减签),节点跳转(常规节点、分支节点、会签节点),会签自定义权重实战,接管Activiti(映射文件、自定义部门实现、扩展任务节点参与者表、自定义代办SQL)、接管实体管理类。

————————————————————————————————

本书特色:

本书的主要特点有:

                结构清晰。本书采用由浅入深、以点带面,采用从整体到局部,再从局部放眼全局的视角,力求展示Activiti框架的全貌。

                原理结合实战。本书不甘心仅仅追求原理的讲解,更希望通过原理延伸到实际项目开发中具体问题的解决,从而达到学以致用的目的。

                通俗易懂。本书依然服务于广大的Activiti初学者以及爱好者,尽量避免过于理论的描述方式,尽量做到少盲点、无盲点,从而更加“享受式”的学习,语言浅显易懂却不失专业。

                技术全面。本书的讲解涉及到了80%以上的源码分析、并对框架级别的Bug和缺陷大胆假设,小心取证,从而对Activiti框架有一个全面、全新的认识。

                代码移植性高。本书的案例来自真实的企业级应用、代码经过工业环境的验证和实践、可移植性强、可塑性高、力争追求“小”而精悍。

书目录如下:

1. 环境搭建 13

1.1 环境搭建 13

1.1.1 安装GitHub 13

1.1.2 安装Maven 13

1.2 编译源码 14

1.3 源码目录说明 16

1.4 安装流程设计器 16

1.5 工程搭建 18

2. 探险流程引擎 19

2.1 流程配置文件 19

2.1.1 Activiti配置风格 19

2.1.2 Spring配置风格 20

2.2 流程引擎架构 23

2.3 构造流程引擎实例对象 25

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

2.3.2 构造流程引擎实例对象 30

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

2.3.4 初始化流程引擎 34

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

2.4 初始化流程引擎配置类 38

2.5 配置器 40

2.5.1 初始化配置器 41

2.5.2 配置器实战 42

2.6 初始化流程引擎 45

2.6.1 操作引擎表 47

2.7 管理流程引擎 48

2.7.1 注册流程引擎 48

2.7.2 关闭流程引擎 49

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

2.9 其他方式构造引擎实例 51

2.9.1 ProcessEngineConfiguration类创建引擎 51

2.9.2 编程方式创建引擎 53

3. 初识流程资源部署 55

3.1 流程资源概述 55

3.1.1 流程文档部署生命周期 55

3.1.2 DeploymentBuilder核心类 56

3.2 流程文档部署 58

3.2.1 定义流程文档 58

3.2.2 文本方式部署 59

3.2.3 classpath资源部署 60

3.2.4 流式部署 61

3.3 BpmnModel方式部署 62

3.4 校验BpmnModel实例对象 65

3.5 BpmnModel转换流程文档 66

3.6 流程文档转换BpmnModel 67

3.7 使用建议 68

4. 流程文档解析原理 68

4.1 文档解析基础 68

4.1.1 文档解析模型 68

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

4.1.3 文档解析实战 70

4.2 元素解析功能架构设计 73

4.2.1 BPMN2.0元素概述 73

4.2.2 元素解析功能架构设计 73

4.2.3 开闭原则 74

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

4.2.5 元素属性承载类架构 77

4.3 元素解析环境准备 78

4.3.1 文档转换器 78

4.3.2 封装流程文档数据流 81

4.3.3 初始化元素解析器 82

4.3.4 文档转换器功能 83

4.3.5 元素解析环境准备 84

4.3.6 验证流程文档格式 86

4.4 元素解析 88

4.4.1 元素解析入口 88

4.4.2 解析根元素 92

4.4.3 黑名单处理机制 93

4.4.4 流程内元素解析入口 95

4.4.5 解析连线 97

4.4.6 获取元素坐标 98

4.5 子元素解析 99

4.5.1 初始化子元素解析器 99

4.5.2 解析子元素 100

4.5.3 解析扩展元素 102

4.6 节点与连线关联 109

5. 自定义元素解析 111

5.1 自定义元素解析原理 111

5.2 存储自定义元素属性值 113

5.3 自定义元素实战 113

5.4 扩展黑名单元素 117

5.4.1 扩展元素属性原理 117

5.4.2 任务节点扩展属性实战 118

5.5 扩展非黑名单元素 120

5.5.1 自定义元素解析器 120

5.5.2 替换引擎元素解析器 122

6. 事件转发器 124

6.1 初始化事件转发器 124

6.2 事件转发器架构 126

6.3 注册事件监听 127

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

6.5 事件转发原理以及缺陷 131

6.6 添加事件监听器 133

6.6.1 使用配置方式添加 133

6.6.2 动态添加 134

6.7 日志监听器 135

6.7.1 初始化日志监听器 136

6.7.2 初始化日志处理器 137

6.7.3 日志处理器架构 138

6.7.4 收集日志数据入口 140

6.8 日志清洗器架构 144

6.8.1 数据库日志清洗器 144

6.8.2 生成日志数据 145

6.8.3 日志存储 147

6.9 自定义日志清洗器 147

7. 流程文档部署原理 150

7.1 初始化部署器 150

7.1.1 初始化内置部署器 152

7.1.2 部署器依赖关系 155

7.2 部署命令 156

7.2.1 过滤重复文档 160

7.2.2 设置标识位 161

7.2.3 添加会话缓存 162

7.2.4 部署管理器 163

7.3 Bpmn部署器 163

7.3.1 获取资源信息 169

7.3.2 封装资源信息 170

7.3.3 校验资源名称 171

7.3.4 计算流程定义版本值 172

7.3.5 生成流程定义id 172

7.3.6 移除过期作业 173

7.3.7 添加作业 174

7.3.8 处理消息 175

7.3.9 处理信号 176

7.3.10 设置流程启动人 176

7.4 自定义部署器实战 178

8. 缓存 180

8.1 背景 180

8.2 初始化缓存策略 181

8.3 部署管理器 182

8.4 缓存处理类架构 183

8.5 默认缓存处理类及Bug 184

8.6 流程定义缓存 186

8.6.1 自定义缓存处理类 186

8.6.2 验证自定义缓存处理类 188

8.7 Activiti新特性之节点缓存 189

8.8 节点缓存实战 190

8.9 节点缓存原理 192

8.9.1 初始化节点缓存数据 193

8.9.2 更新节点缓存 195

8.9.3 节点缓存架构 197

8.9.4 节点缓存使用误区 198

8.10 自定义节点缓存实战 200

8.10.1 自定义节点缓存类 200

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

8.10.3 扩展引擎配置类功能 203

8.10.4 配置器高级用法 204

8.10.5 使用自定义节点缓存类 205

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

8.11.1 获取任务节点缓存数据 207

8.11.2 解析任务节点缓存数据 208

8.11.3 运用任务节点缓存数据 209

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

8.13 节点缓存使用技巧 211

9. 定时作业 213

9.1 初始化作业执行器 213

9.2 初始化作业处理器 214

9.2.1 任务超时作业 216

9.2.2 定时任务作业 218

9.2.3 定时启动流程实例作业 219

9.2.4 其他作业 220

9.3 作业执行器原理 221

9.3.1 初始化作业执行器 221

9.3.2 启动作业执行器 222

9.4 添加定时作业 223

9.5 执行定时作业 226

9.5.1 查询作业 228

9.6 处理作业 230

9.6.1 批量处理作业 231

9.6.2 执行作业之异常处理 235

9.7 关闭作业执行器 236

9.8 自定义作业处理器 237

10. 流程虚拟机 240

10.1 流程虚拟机原理 241

10.2 虚拟机入口 243

10.3 流程定义转换准备 245

10.3.1 初始化对象解析器集合 246

10.3.2 初始化内置对象解析器 247

10.3.3 解析调度类BpmnParseHandlers 249

10.3.4 BpmnParseHandler架构 250

10.3.5 对象解析器架构 251

10.4 流程对象解析入口 253

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

10.5.1 任务节点对象解析器 259

10.5.2 创建ActivityImpl实例对象 260

10.5.3 多实例对象解析 263

10.5.4 连线对象解析 265

10.6 PvmProcessElement类架构 267

10.7 自定义对象解析器 268

10.7.1 任务节点扩展属性 269

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

10.7.3 获取自定义属性 272

10.7.4 运用自定义对象解析器 273

10.8 流程虚拟机实战 275

10.8.1 获取流程虚拟机对象 275

10.8.2 入侵流程虚拟机 276

10.9 操作连线表达式 278

10.9.1 自动计算连线表达式 278

10.9.2 获取连线表达式 278

11. 监听器原理 279

11.1 监听器生命周期 280

11.2 内置记录监听器 282

11.2.1 内置任务记录监听器 282

11.2.2 内置执行记录监听器 282

11.3 历史解析器架构 283

11.3.1 添加内置记录监听器 284

11.3.2 初始化历史解析器 286

11.3.3 历史节点结束通知 287

11.3.4 控制归档历史数据级别 289

11.3.5 更新历史数据 290

11.3.6 历史节点开始通知 291

11.4 注入执行监听器 292

11.4.1 创建执行监听器 294

11.5 注入任务监听器 295

11.6 触发执行监听器 297

11.6.1 class方式调度 298

11.6.2 delegateExpression方式调度 301

11.6.3 expression方式调度 303

11.6.4 执行监听器触发入口 304

11.7 触发任务监听器 305

11.8 监听器代理 307

11.8.1 默认代理类 307

11.8.2 自定义代理类 308

11.9 自定义全局任务监听器 309

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

12. Activiti之设计模式 313

12.1.1 命令模式的结构说明 313

12.1.2 命令模式实战 314

12.2 Activiti命令模式 316

12.2.1 初始化命令配置类 317

12.2.2 Activiti事务传播行为 318

12.2.3 Spring事务拦截器 320

12.2.4 初始化命令调度者 321

12.2.5 初始化命令上下文工厂 322

12.2.6 初始化命令拦截器 322

12.3 Activiti职责链模式 324

12.4 命令相关类职责 326

12.5 命令拦截器 328

12.5.1 日志拦截器 328

12.5.2 命令上下文拦截器 329

12.5.3 上下文类 331

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

12.5.5 命令调度者拦截器 333

12.6 自定义命令拦截器 334

12.7 命令类调度入口 335

12.8 Activiti事务 337

12.8.1 MyBatis事务管理 337

12.8.2 事务上下文架构 338

12.8.3 事务上下文工厂类 339

12.8.4 事务监听器 340

12.8.5 注册同步事务 341

13. 流程虚拟机运转 344

13.1 流程实例运转入口 344

13.2 启动流程实例命令类 345

13.2.1 获取ProcessDefinitionEntity实例对象 347

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

13.3 创建流程实例 349

13.3.1 创建ExecutionEntity实例对象 353

13.3.2 获取dataObject 356

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

13.3.4 添加历史流程实例数据 358

13.4 虚拟机运转原理 359

13.5 AtomicOperation架构 359

13.6 流程实例启动 362

13.6.1 非异步节点处理 363

13.6.2 异步节点处理 364

13.7 原子类流转 369

13.7.1 流程启动原子类 369

13.7.2 流程启动准备原子类 369

13.7.3 活动节点执行原子类 371

13.7.4 开始节点行为类 371

13.7.5 途经连线 375

13.7.6 通知连线完成原子类 376

13.7.7 连线销毁原子类 377

13.7.8 其他原子类 378

13.8 Activiti新特性之忽略节点 379

14. 行为篇 381

14.1 活动行为工厂类 381

14.1.1 初始化活动行为工厂类 381

14.1.2 活动行为类架构 382

14.2 排他网关行为类原理 384

14.3 扩展排他网关实战 388

14.3.1 自定义排他网关行为类 388

14.3.2 自定义活动行为工厂类 389

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

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

14.4.1 任务处理人扩展 391

14.4.2 自定义任务解析器 391

14.4.3 自定义任务行为类 392

14.4.4 自定义活动行为工厂类 394

14.5 忽略节点使用误区 395

14.6 修复Activiti忽略节点Bug 396

14.7 修复Activiti子流程业务键Bug 397

15. Activiti存储之MyBatis 400

15.1 初始化dataSource 401

15.2 Activiti数据访问层关系分析 404

15.2.1 实体类与数据库的映射 404

15.2.2 实例化SqlSessionFactory 406

15.3 自定义Mapper实战 409

15.3.1 自定义Mapper 410

15.3.2 自定义SQL执行原理 411

15.4 SessionFactory 413

15.4.1 初始化SessionFactory 413

15.4.2 SessionFactory架构 415

15.5 Session 416

15.5.1 Session架构 417

15.5.2 实例化方式创建Session实例 417

15.5.3 反射方式创建Session实例 418

15.5.4 实例化DbSqlSession 418

15.6 SQL语句 419

15.6.1 SQL语句适配器 419

15.6.2 SQL执行id值生成规则 421

15.7 数据层和数据的关系 424

15.7.1 PersistentObject业务对象 424

15.7.2 实体管理类 425

15.8 添加会话缓存 426

15.9 更新操作 429

15.9.1 会话缓存方式更新 430

15.9.2 SqlSession方式更新 430

15.10 删除操作 431

15.10.1 DeleteOperation接口 431

15.10.2 BulkDeleteOperation删除数据 432

15.10.3 CheckedDeleteOperation删除数据 433

15.10.4 乐观锁 435

15.11 刷新会话缓存入口 435

15.12 会话缓存数据持久化 438

15.12.1 移除不必要数据 439

15.12.2 刷新序列化变量 441

15.12.3 获取更新对象 443

15.12.4 刷新数据 446

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

15.12.6 性能优化 449

16. 实战 449

16.1 高并发id生成器 449

16.1.1 id生成器初始化 449

16.1.2 自增id生成器 451

16.1.3 自定义主键生成器 452

16.2 变量类型 453

16.2.1 初始化变量管理类 453

16.2.2 变量管理类架构 455

16.2.3 变量处理类 456

16.2.4 自定义变量处理类 457

16.3 ServiceLoader方式注入配置器 460

16.4 节点跳转 461

16.4.1 常规节点跳转 462

16.4.2 分支节点跳转 465

16.4.3 多实例节点跳转 468

16.5 会签 471

16.5.1 串行多实例 472

16.5.2 认领和归还任务 473

16.5.3 代理任务 474

16.5.4 并行多实例 475

16.5.5 加签 476

16.5.6 减签和退签 479

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

16.6.1 定义处理人权重 481

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

16.6.3 优化建议 486

16.7 接管Activiti 486

16.7.1 接管Activiti映射文件 487

16.7.2 禁用用户表和组表 488

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

16.7.4 扩展任务节点参与者表 490

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

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

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

16.7.8 自定义代办SQL 495

16.8 接管Activiti实体管理类 497


猜你喜欢

转载自blog.csdn.net/qq_30739519/article/details/74932573
今日推荐