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

来源:互联网 发布:工业机器人编程招聘 编辑:程序博客网 时间:2024/05/16 05:52

这是一本深入讲解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安装GitHub13

1.1.2安装Maven13

1.2编译源码14

1.3源码目录说明16

1.4安装流程设计器16

1.5工程搭建18

2.探险流程引擎19

2.1流程配置文件19

2.1.1Activiti配置风格19

2.1.2Spring配置风格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.1ProcessEngineConfiguration类创建引擎51

2.9.2编程方式创建引擎53

3.初识流程资源部署55

3.1流程资源概述55

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

3.1.2DeploymentBuilder核心类56

3.2流程文档部署58

3.2.1定义流程文档58

3.2.2文本方式部署59

3.2.3classpath资源部署60

3.2.4流式部署61

3.3BpmnModel方式部署62

3.4校验BpmnModel实例对象65

3.5BpmnModel转换流程文档66

3.6流程文档转换BpmnModel67

3.7使用建议68

4.流程文档解析原理68

4.1文档解析基础68

4.1.1文档解析模型68

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

4.1.3文档解析实战70

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

4.2.1BPMN2.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.3Bpmn部署器163

7.3.1获取资源信息169

7.3.2封装资源信息170

7.3.3校验资源名称171

7.3.4计算流程定义版本值172

7.3.5生成流程定义id172

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默认缓存处理类及Bug184

8.6流程定义缓存186

8.6.1自定义缓存处理类186

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

8.7Activiti新特性之节点缓存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节点缓存不更新Bug203

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解析调度类BpmnParseHandlers249

10.3.4BpmnParseHandler架构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.6PvmProcessElement类架构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.1class方式调度298

11.6.2delegateExpression方式调度301

11.6.3expression方式调度303

11.6.4执行监听器触发入口304

11.7触发任务监听器305

11.8监听器代理307

11.8.1默认代理类307

11.8.2自定义代理类308

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

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

12.Activiti之设计模式313

12.1.1命令模式的结构说明313

12.1.2命令模式实战314

12.2Activiti命令模式316

12.2.1初始化命令配置类317

12.2.2Activiti事务传播行为318

12.2.3Spring事务拦截器320

12.2.4初始化命令调度者321

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

12.2.6初始化命令拦截器322

12.3Activiti职责链模式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.8Activiti事务337

12.8.1MyBatis事务管理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获取dataObject356

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

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

13.4虚拟机运转原理359

13.5AtomicOperation架构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.8Activiti新特性之忽略节点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忽略节点Bug396

14.7修复Activiti子流程业务键Bug397

15.Activiti存储之MyBatis400

15.1初始化dataSource401

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

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

15.2.2实例化SqlSessionFactory406

15.3自定义Mapper实战409

15.3.1自定义Mapper410

15.3.2自定义SQL执行原理411

15.4SessionFactory413

15.4.1初始化SessionFactory413

15.4.2SessionFactory架构415

15.5Session416

15.5.1Session架构417

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

15.5.3反射方式创建Session实例418

15.5.4实例化DbSqlSession418

15.6SQL语句419

15.6.1SQL语句适配器419

15.6.2SQL执行id值生成规则421

15.7数据层和数据的关系424

15.7.1PersistentObject业务对象424

15.7.2实体管理类425

15.8添加会话缓存426

15.9更新操作429

15.9.1会话缓存方式更新430

15.9.2SqlSession方式更新430

15.10删除操作431

15.10.1DeleteOperation接口431

15.10.2BulkDeleteOperation删除数据432

15.10.3CheckedDeleteOperation删除数据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.1id生成器初始化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.3ServiceLoader方式注入配置器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接管Activiti486

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自定义代办SQL495

16.8接管Activiti实体管理类497


原创粉丝点击