-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathactiviti.txt
864 lines (498 loc) · 13.5 KB
/
activiti.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
1.1环境搭建
1.1.1安装GitHub
1.1.2安装Maven
1.2编译源码
1.3源码目录说明
1.4安装流程设计器
1.5工程搭建
第2章探险流程引擎
2.1流程配置文件
2.1.1Activiti配置风格
2.1.2Spring配置风格
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.1ProcessEngineConfiguration类创建引擎
2.9.2编程方式创建引擎
第3章初识流程资源部署
3.1流程资源概述
3.1.1流程文档部署生命周期
3.1.2DeploymentBuilder核心类
3.2流程文档部署
3.2.1定义流程文档
3.2.2文本方式部署
3.2.3classpath资源部署
3.2.4流式部署
3.3BpmnModel方式部署
3.4校验BpmnModel实例对象
3.5BpmnModel转换流程文档
3.6流程文档转换BpmnModel
3.7使用建议
第4章流程文档解析原理
4.1文档解析基础
4.1.1文档解析模型
4.1.2Activiti文档解析技术选型演变
4.1.3文档解析实战
4.2元素解析功能架构设计
4.2.1BPMN2.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.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.3Bpmn部署器
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.7Activiti新特性之节点缓存
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.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.4BpmnParseHandler架构
10.3.5对象解析器架构
10.4流程对象解析入口
10.5流程子元素对象解析入口
10.5.1任务节点对象解析器
10.5.2创建ActivityImpl实例对象
10.5.3多实例对象解析
10.5.4连线对象解析
10.6PvmProcessElement类架构
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.5注入任务监听器
11.6触发执行监听器
11.6.1class方式调度
11.6.2delegateExpression方式调度
11.6.3expression方式调度
11.6.4执行监听器触发入口
11.7触发任务监听器
11.8监听器代理
11.8.1默认代理类
11.8.2自定义代理类
11.9自定义全局任务监听器
11.10Activiti新特性之字段注射模式
第12章Activiti之设计模式
12.1命令模式说明
12.1.1命令模式的结构说明
12.1.2命令模式实战
12.2Activiti命令模式
12.2.1初始化命令配置类
12.2.2Activiti事务传播行为
12.2.3Spring事务拦截器
12.2.4初始化命令调度者
12.2.5初始化命令上下文工厂
12.2.6初始化命令拦截器
12.3Activiti职责链模式
12.4命令相关类职责
12.5命令拦截器
12.5.1日志拦截器
12.5.2命令上下文拦截器
12.5.3上下文类
12.5.4创建命令上下文实例对象
12.5.5命令调度者拦截器
12.6自定义命令拦截器
12.7命令类调度入口
12.8Activiti事务
12.8.1MyBatis事务管理
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.5AtomicOperation架构
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.8Activiti新特性之忽略节点
第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.2Activiti数据访问层关系分析
15.2.1实体类与数据库表的映射
15.2.2实例化SqlSessionFactory
15.3自定义Mapper实战
15.3.1自定义Mapper
15.3.2自定义SQL执行原理
15.4SessionFactory
15.4.1初始化SessionFactory
15.4.2SessionFactory架构
15.5Session
15.5.1Session架构
15.5.2实例化方式创建Session实例
15.5.3反射方式创建Session实例
15.5.4实例化DbSqlSession
15.6SQL语句
15.6.1SQL语句适配器
15.6.2SQL执行id值生成规则
15.7数据层和数据的关系
15.7.1PersistentObject业务对象
15.7.2实体管理类
15.8添加会话缓存
15.9更新操作
15.9.1会话缓存方式更新
15.9.2SqlSession方式更新
15.10删除操作
15.10.1DeleteOperation接口
15.10.2BulkDeleteOperation删除数据
15.10.3CheckedDeleteOperation删除数据
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.1id生成器初始化
16.1.2自增id生成器
16.1.3自定义主键生成器
16.2变量类型
16.2.1初始化变量管理类
16.2.2变量管理类架构
16.2.3变量处理类
16.2.4自定义变量处理类
16.3ServiceLoader方式注入配置器
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实体管理类
第1章 Activiti介绍
1.1 工作流介绍
1.2 BPMN 2.0规范简述
1.3 Activiti介绍
1.4 本章小结
第2章 安装与运行Activiti
2.1 下载与运行Activiti
2.2 运行官方的Activiti示例
2.3 安装开发环境
2.4 编写第一个Activiti程序
2.5 本章小结
第3章 Activiti数据库设计
3.1 通用数据表
3.2 流程存储表
3.3 身份数据表
3.4 运行时数据表
3.5 历史数据表
3.6 DMN规则引擎表
3.7 本章小结
第4章 Activiti流程引擎配置
4.1 流程引擎配置对象
4.2 数据源配置
4.3 其他属性配置
4.4 ProcessEngineConfiguration bean
4.5 Activiti的命令拦截器
4.6 本章小结
第5章 流程引擎的创建
5.1 ProcessEngineConfiguration的buildProcessEngine方法
5.2 ProcessEngines对象
5.3 ProcessEngine对象
5.4 本章小结
第6章 用户组与用户
6.1 用户组管理
6.2 Activiti数据查询
6.3 用户管理
6.4 用户信息管理
6.5 用户组与用户的关系
6.6 本章小结
第7章 流程存储
7.1 流程文件部署
7.2 流程定义的管理
7.3 流程定义权限
7.4 RepositoryService数据查询与删除
7.5 本章小结
第8章 流程任务管理
8.1 任务的创建与删除
8.2 任务权限
8.3 任务参数
8.4 任务附件管理
8.5 任务评论与事件记录
8.6 任务声明与完成
8.7 本章小结
第9章 流程控制
9.1 流程实例与执行流
9.2 启动流程
9.3 流程参数
9.4 流程操作
9.5 流程数据查询
9.6 本章小结
第10章 历史数据管理和流程引擎管理
10.1 历史数据管理
10.2 工作的产生
10.3 工作管理
10.4 数据库管理
10.5 本章小结
第11章 流程事件
11.1 事件分类
11.2 事件定义
11.3 开始事件
11.4 结束事件
11.5 边界事件
11.6 中间事件
11.7 补偿中间事件
11.8 本章小结
第12章 流程任务
12.1 BPMN 2.0任务
12.2 用户任务
12.3 脚本任务
12.4 服务任务
12.5 其他任务
12.6 任务监听器
12.7 流程监听器
12.8 本章小结
第13章 其他流程元素
13.1 子流程
13.2 顺序流
13.3 流程网关
13.4 流程活动特性
13.5 本章小结
第14章 Activiti与规则引擎
14.1 概述
14.2 开发第一个Drools应用
14.3 Drools规则语法概述
14.4 类型声明
14.5 函数和查询
14.6 规则语法
14.7 Activiti调用规则
14.8 本章小结
第15章 基于DMN的Activiti规则引擎
15.1 DMN规范概述
15.2 DMN的XML规范
15.3 运行第一个应用
15.4 规则引擎API简述
15.5 规则匹配
15.6 本章小结
第16章 整合第三方框架
16.1 Spring Framework
16.2 Activiti整合Spring
16.3 Activiti整合Web项目
16.4 Activiti与Spring Boot
16.5 Activiti与JPA
16.6 本章小结
第17章 Activiti开放的Web Service
17.1 Web Service简介
17.2 使用SpingMVC发布REST
17.3 流程存储服务
17.4 本章小结
第18章 Activiti功能进阶
18.1 流程控制逻辑
18.2 Activiti的表单
18.3 流程图XML
18.4 流程操作
18.5 本章小结
第19章 办公自动化系统
19.1 使用技术
19.2 功能简述
19.3 框架整合
19.4 数据库设计
19.5 初始化数据
19.6 角色管理
19.7 流程启动
19.8 申请列表
19.9 流程任务