疯狂工作流讲义 基于Activiti 6.x的应用开发

《疯狂工作流讲义 基于Activiti 6.x的应用开发》

  • 出版社:电子工业出版社
  • ISBN:9787121330186
  • 版次:1
  • 商品编码:12246565
  • 品牌:博文视点
  • 包装:平装
  • 开本:16开
  • 出版时间:2017-11-01
  • 用纸:胶版纸
  • 页数:476
  • 字数:800000
  • 正文语种:中文
基本介绍书籍目录点评信息
  • 书籍内容

      
      工作流引擎Activiti经过多年的发展,已经变成一个成熟的工作流框架,在2017年,Activiti推出了全新的6.0版本,除了完善对BPMN规范的支持外,还加入了对DMN规范的支持。为了能让广大的程序开发者一探新版本Activiti的功能,笔者在第一版的基础上,编写了本书的第二版。
      书中会对Activiti的知识进行全面讲解,并从源码角度对Activiti进行深度剖析。本书会以Activiti为基础,讲述该框架的API使用、BPMN规范,除了这些工作流的基本知识外,还讲解了新的DMN规范引擎、Activiti整合SpringBoot等内容。在本书的第18章,深入Activiti的源代码,展示舍弃流程虚拟机(PVM)之后的Activiti,如何对流程进行控制,让读者能一窥Activiti的庐山真面目。zui后一章,以一个案例结束本书的内容,案例中整合Spring、Struts2等主流框架,目的是让读者在学习的过程中更贴近实际案例。

    编辑推荐

    适读人群 :Java Web应用开发人员,计算机及相关专业在校生
      
      1.内容深入。书中的案例不仅仅讲解Activiti的功能,更模仿Activiti的思路去模拟功能的实现,读者可以深入了解其中的原理。
      2.开发环境与案例更贴近实际。书中案例的开发环境、使用的框架以及工具均是来自企业的实际应用,案例的选取与研发过程更贴近实际。
      3.注释详细。本书的代码,几乎每行Java代码均有注释,读者可以很容易地了解代码的意思,轻松掌握相应的知识。

    作者简介

      杨恩雄,从事十多年JavaEE企业应用开发,曾任中企动力系统设计师、中企开源项目经理、数码辰星科技公司项目经理,参与过多个企业级项目的设计与架构工作,曾负责辰星“电影票网络销售系统”的整体架构。精通Activiti、Drools、ESB等开源技术,在SOA、SaaS、大数据应用、互联网系统架构方面有着丰富的经验,曾出版《疯狂Java实战演义》《疯狂Workflow讲义》《疯狂SpringCloud微服务架构实战》等书籍。
  • 第1章 Activiti介绍 1
    1.1 工作流介绍 2
    1.2 BPMN 2.0规范简述 2
    1.2.1 BPMN 2.0概述 3
    1.2.2 BPMN 2.0元素 3
    1.2.3 BPMN 2.0的XML结构 5
    1.3 Activiti介绍 5
    1.3.1 Activiti的出现 5
    1.3.2 Activiti的发展 5
    1.3.3 选择Activiti还是jBPM 5
    1.4 本章小结 6
    第2章 安装与运行Activiti 7
    2.1 下载与运行Activiti 8
    2.1.1 下载和安装JDK 8
    2.1.2 下载和安装MySQL 9
    2.1.3 下载和安装Activiti 10
    2.2 运行官方的Activiti示例 11
    2.2.1 请假流程概述 11
    2.2.2 新建用户 11
    2.2.3 定义流程 12
    2.2.4 发布流程 14
    2.2.5 启动与完成流程 15
    2.2.6 流程引擎管理 16
    2.3 安装开发环境 17
    2.3.1 下载Eclipse 17
    2.3.2 安装Activiti插件 18
    2.4 编写第一个Activiti程序 19
    2.4.1 如何运行本书示例 19
    2.4.2 建立工程环境 19
    2.4.3 创建配置文件 20
    2.4.4 创建流程文件 20
    2.4.5 加载流程文件与启动流程 21
    2.5 本章小结 22
    第3章 Activiti数据库设计 23
    3.1 通用数据表 24
    3.1.1 资源表 24
    3.1.2 属性表 24
    3.2 流程存储表 25
    3.2.1 部署数据表 25
    3.2.2 流程定义表 25
    3.3 身份数据表 25
    3.3.1 用户表 25
    3.3.2 用户账号(信息)表 26
    3.3.3 用户组表 26
    3.3.4 关系表 26
    3.4 运行时数据表 26
    3.4.1 流程实例(执行流)表 26
    3.4.2 流程任务表 27
    3.4.3 流程参数表 27
    3.4.4 流程与身份关系表 27
    3.4.5 工作数据表 28
    3.4.6 事件描述表 28
    3.5 历史数据表 28
    3.5.1 流程实例表 28
    3.5.2 流程明细表 29
    3.5.3 历史任务表和历史行为表 29
    3.5.4 附件表和评论表 29
    3.6 DMN规则引擎表 30
    3.6.1 决策部署表 30
    3.6.2 决策表 30
    3.6.3 部署资源表 30
    3.7 本章小结 30
    第4章 Activiti流程引擎配置 31
    4.1 流程引擎配置对象 32
    4.1.1 读取默认的配置文件 32
    4.1.2 读取自定义的配置文件 33
    4.1.3 读取输入流的配置 33
    4.1.4 使用createStandaloneInMemProcess- EngineConfiguration方法 34
    4.1.5 使用createStandaloneProcessEngine- Configuration方法 34
    4.2 数据源配置 35
    4.2.1 Activiti支持的数据库 35
    4.2.2 Activiti与Spring 35
    4.2.3 JDBC配置 35
    4.2.4 DBCP数据源配置 36
    4.2.5 C3P0数据源配置 37
    4.2.6 Activiti其他数据源配置 38
    4.2.7 数据库策略配置 38
    4.2.8 databaseType配置 39
    4.3 其他属性配置 40
    4.3.1 history配置 40
    4.3.2 asyncExecutorActivate配置 41
    4.3.3 邮件服务器配置 41
    4.4 ProcessEngineConfiguration bean 41
    4.4.1 ProcessEngineConfiguration及其子类 41
    4.4.2 自定义ProcessEngineConfiguration 42
    4.5 Activiti的命令拦截器 43
    4.5.1 命令模式 44
    4.5.2 责任链模式 45
    4.5.3 编写自定义拦截器 47
    4.6 本章小结 49
    第5章 流程引擎的创建 50
    5.1 ProcessEngineConfiguration的buildProcessEngine方法 51
    5.2 ProcessEngines对象 51
    5.2.1 init方法与getDefaultProcessEngine方法 51
    5.2.2 registerProcessEngine方向和unregister方法 52
    5.2.3 retry方法 53
    5.2.4 destroy方法 53
    5.3 ProcessEngine对象 54
    5.3.1 服务组件 54
    5.3.2 关闭流程引擎 55
    5.3.3 流程引擎名称 56
    5.4 本章小结 56
    第6章 用户组与用户 57
    6.1 用户组管理 58
    6.1.1 Group对象 58
    6.1.2 创建用户组 58
    6.1.3 修改用户组 59
    6.1.4 删除用户组 60
    6.2 Activiti数据查询 61
    6.2.1 查询对象 61
    6.2.2 list方法 61
    6.2.3 listPage方法 62
    6.2.4 count方法 63
    6.2.5 排序方法 63
    6.2.6 ID排序问题 64
    6.2.7 多字段排序 66
    6.2.8 singleResult方法 67
    6.2.9 用户组数据查询 68
    6.2.10 原生SQL查询 69
    6.3 用户管理 71
    6.3.1 User对象 71
    6.3.2 添加用户 71
    6.3.3 修改用户 72
    6.3.4 删除用户 72
    6.3.5 验证用户密码 73
    6.3.6 用户数据查询 74
    6.3.7 设置认证用户 75
    6.4 用户信息管理 77
    6.4.1 添加和删除用户信息 77
    6.4.2 查询用户信息 78
    6.4.3 设置用户图片 78
    6.5 用户组与用户的关系 80
    6.5.1 绑定关系 80
    6.5.2 解除绑定 81
    6.5.3 查询用户组下的用户 81
    6.5.4 查询用户所属的用户组 82
    6.6 本章小结 83
    第7章 流程存储 84
    7.1 流程文件部署 85
    7.1.1 Deployment对象 85
    7.1.2 DeploymentBuilder对象 85
    7.1.3 添加输入流资源 86
    7.1.4 添加classpath资源 87
    7.1.5 添加字符串资源 88
    7.1.6 添加压缩包资源 88
    7.1.7 添加BPMN模型资源 89
    7.1.8 修改部署信息 90
    7.1.9 过滤重复部署 90
    7.1.10 取消部署时的验证 92
    7.2 流程定义的管理 93
    7.2.1 ProcessDefinition对象 93
    7.2.2 流程部署 93
    7.2.3 流程图部署 95
    7.2.4 流程图自动生成 95
    7.2.5 中止与激活流程定义 96
    7.2.6 流程定义缓存配置 97
    7.2.7 自定义缓存 98
    7.3 流程定义权限 100
    7.3.1 设置流程定义的用户权限 100
    7.3.2 设置流程定义的用户组权限 101
    7.3.3 IdentityLink对象 102
    7.3.4 查询权限数据 102
    7.4 RepositoryService数据查询与删除 104
    7.4.1 查询部署资源 104
    7.4.2 查询流程文件 105
    7.4.3 查询流程图 106
    7.4.4 查询部署资源名称 107
    7.4.5 删除部署资源 107
    7.4.6 DeploymentQuery对象 108
    7.4.7 ProcessDefinitionQuery对象 109
    7.5 本章小结 109
    第8章 流程任务管理 110
    8.1 任务的创建与删除 111
    8.1.1 Task接口 111
    8.1.2 创建与保存Task实例 112
    8.1.3 删除任务 112
    8.2 任务权限 113
    8.2.1 设置候选用户组 114
    8.2.2 设置候选用户 115
    8.2.3 权限数据查询 116
    8.2.4 设置任务持有人 118
    8.2.5 设置任务代理人 119
    8.2.6 添加任务权限数据 119
    8.2.7 删除用户组权限 121
    8.2.8 删除用户权限 122
    8.3 任务参数 123
    8.3.1 基本类型参数设置 124
    8.3.2 序列化参数 125
    8.3.3 获取参数 126
    8.3.4 参数作用域 127
    8.3.5 设置多个参数 128
    8.3.6 数据对象 129
    8.4 任务附件管理 130
    8.4.1 Attachment对象 130
    8.4.2 创建任务附件 130
    8.4.3 附件查询 132
    8.4.4 删除附件 133
    8.5 任务评论与事件记录 133
    8.5.1 Comment对象 133
    8.5.2 新增任务评论 134
    8.5.3 事件的记录 135
    8.5.4 数据查询 136
    8.6 任务声明与完成 137
    8.6.1 任务声明 137
    8.6.2 任务完成 138
    8.7 本章小结 139
    第9章 流程控制 140
    9.1 流程实例与执行流 141
    9.1.1 流程实例与执行流概念 141
    9.1.2 流程实例和执行流对象(ProcessInstance与Execution) 141
    9.2 启动流程 142
    9.2.1 startProcessInstanceById方法 142
    9.2.2 startProcessInstanceByKey方法 144
    9.2.3 startProcessInstanceByMessage 145
    9.3 流程参数 146
    9.3.1 设置与查询流程参数 147
    9.3.2 流程参数的作用域 147
    9.3.3 其他设置参数的方法 149
    9.4 流程操作 149
    9.4.1 流程触发 149
    9.4.2 触发信号事件 150
    9.4.3 触发消息事件 152
    9.4.4 中断与激活流程 153
    9.4.5 删除流程 154
    9.5 流程数据查询 155
    9.5.1 执行流查询 155
    9.5.2 流程实例查询 157
    9.6 本章小结 158
    第10章 历史数据管理和流程引擎管理 159
    10.1 历史数据管理 160
    10.1.1 历史流程实例查询 160
    10.1.2 历史任务查询 161
    10.1.3 历史行为查询 163
    10.1.4 历史流程明细查询 165
    10.1.5 删除历史流程实例和历史任务 166
    10.2 工作的产生 167
    10.2.1 异步任务产生的工作 168
    10.2.2 定时中间事件产生的工作 169
    10.2.3 定时边界事件产生的工作 170
    10.2.4 定时开始事件产生的工作 171
    10.2.5 流程抛出事件产生的工作 172
    10.2.6 暂停工作的产生 174
    10.2.7 无法执行的工作 175
    10.3 工作管理 176
    10.3.1 工作查询对象 176
    10.3.2 获取工作异常信息 176
    10.3.3 转移与删除工作 177
    10.4 数据库管理 178
    10.4.1 查询引擎属性 178
    10.4.2 数据表信息查询 179
    10.4.3 数据库操作 180
    10.4.4 数据表查询 180
    10.5 本章小结 181
    第11章 流程事件 182
    11.1 事件分类 183
    11.1.1 按照事件的位置分类 183
    11.1.2 按照事件的特性分类 183
    11.2 事件定义 183
    11.2.1 定时器事件定义 184
    11.2.2 cron表达式 184
    11.2.3 错误事件定义 186
    11.2.4 信号事件定义 186
    11.2.5 消息事件定义 187
    11.2.6 取消事件定义 187
    11.2.7 补偿事件定义 188
    11.2.8 其他事件定义 188
    11.3 开始事件 188
    11.3.1 无指定开始事件 188
    11.3.2 定时器开始事件 189
    11.3.3 消息开始事件 190
    11.3.4 错误开始事件 191
    11.4 结束事件 193
    11.4.1 无指定结束事件 193
    11.4.2 错误结束事件 194
    11.4.3 取消结束事件和取消边界事件 196
    11.4.4 终止结束事件 199
    11. 5 边界事件 200
    11.5.1 定时器边界事件 201
    11.5.2 错误边界事件 203
    11.5.3 信号边界事件 204
    11.5.4 补偿边界事件 206
    11.6 中间事件 209
    11.6.1 中间事件分类 209
    11.6.2 定时器中间事件 210
    11.6.3 信号中间Catching事件 211
    11.6.4 信号中间Throwing事件 213
    11.6.5 消息中间事件 215
    11.6.6 无指定中间事件 215
    11.7 补偿中间事件 215
    11.7.1 补偿执行次数 215
    11.7.2 补偿的执行顺序 217
    11.7.3 补偿的参数设置 220
    11.8 本章小结 221
    第12章 流程任务 222
    12.1 BPMN 2.0任务 223
    12.1.1 任务的继承 223
    12.1.2 XML约束 223
    12.1.3 任务的类型 225
    12.2 用户任务 226
    12.2.1 分配任务候选人 226
    12.2.2 分配任务代理人 228
    12.2.3 权限分配扩展 228
    12.2.4 使用任务监听器进行权限分配 229
    12.2.5 使用JUEL分配权限 230
    12.3 脚本任务 232
    12.3.1 脚本任务 232
    12.3.2 JavaScript脚本 233
    12.3.3 Groovy脚本 234
    12.3.4 设置返回值 235
    12.3.5 JUEL脚本 236
    12.4 服务任务 237
    12.4.1 Java服务任务 238
    12.4.2 实现JavaDelegate 238
    12.4.3 使用普通Java Bean 240
    12.4.4 在Activiti中调用Web Service 241
    12.4.5 import元素 242
    12.4.6 itemDefinition和message元素 242
    12.4.7 interface与operation元素 243
    12.4.8 设置Web Service参数与返回值 243
    12.4.9 发布Web Service 243
    12.4.10 使用Web Service Task 245
    12.4.11 JavaDelegate属性注入 248
    12.4.12 在JavaDelegate中调用Web Service 251
    12.4.13 Shell任务 253
    12.5 其他任务 255
    12.5.1 手动任务和接收任务 255
    12.5.2 邮件任务 257
    12.5.3 Mule任务和业务规则任务 258
    12.6 任务监听器 259
    12.6.1 使用class指定监听器 259
    12.6.2 使用expression指定监听器 260
    12.6.3 使用delegateExpression指定
    监听器 261
    12.6.4 监听器的触发 262
    12.6.5 属性注入 263
    12.7 流程监听器 263
    12.7.1 配置流程监听器 263
    12.7.2 触发流程监听器的事件 264
    12.8 本章小结 267
    第13章 其他流程元素 268
    13.1 子流程 269
    13.1.1 嵌入式子流程 269
    13.1.2 调用式子流程 271
    13.1.3 调用式子流程的参数传递 273
    13.1.4 事件子流程 275
    13.1.5 事务子流程 277
    13.1.6 特别子流程 280
    13.2 顺序流 282
    13.2.1 条件顺序流 282
    13.2.2 默认顺序流 284
    13.3 流程网关 286
    13.3.1 单向网关 286
    13.3.2 并行网关 288
    13.3.3 兼容网关 291
    13.3.4 事件网关 293
    13.4 流程活动特性 295
    13.4.1 多实例活动 295
    13.4.2 设置循环数据 297
    13.4.3 获取循环元素 298
    13.4.4 循环的内置参数 300
    13.4.5 循环结束条件 302
    13.4.6 补偿处理者 304
    13.5 本章小结 304
    第14章 Activiti与规则引擎 305
    14.1 概述 306
    14.1.1 规则引擎Drools 306
    14.1.2 Drools下载与安装 306
    14.2 开发第一个Drools应用 307
    14.2.1 建立Drools环境 307
    14.2.2 编写规则 308
    14.2.3 加载与运行 308
    14.3 Drools规则语法概述 309
    14.3.1 规则文件结构 309
    14.3.2 关键字 310
    14.3.3 规则编译 310
    14.4 类型声明 311
    14.4.1 声明新类型 312
    14.4.2 使用ASM操作字节码 313
    14.4.3 类型声明的使用 314
    14.4.4 类型的继承 316
    14.4.5 声明元数据 317
    14.5 函数和查询 317
    14.5.1 函数定义和使用 318
    14.5.2 查询的定义和使用 320
    14.6 规则语法 321
    14.6.1 全局变量 322
    14.6.2 规则属性 323
    14.6.3 条件语法 327
    14.6.4 行为语法 330
    14.7 Activiti调用规则 331
    14.7.1 业务规则任务 332
    14.7.2 制定销售单优惠规则 333
    14.7.3 实现销售流程 336
    14.8 本章小结 339
    第15章 基于DMN的Activiti规则引擎 340
    15.1 DMN规范概述 341
    15.1.1 DMN的出现背景 341
    15.1.2 Activiti与Drools 341
    15.1.3 DMN的XML样例 341
    15.2 DMN的XML规范 342
    15.2.1 决策 342
    15.2.2 决策表 343
    15.2.3 输入参数 343
    15.2.4 输出结果 344
    15.2.5 规则 344
    15.3 运行第一个应用 345
    15.3.1 建立项目 345
    15.3.2 规则引擎配置文件 346
    15.3.3 编写DMN文件 346
    15.3.4 加载与运行DMN文件 347
    15.4 规则引擎API简述 348
    15.4.1 创建规则引擎 348
    15.4.2 配置规则引擎 349
    15.4.3 数据查询 350
    15.4.4 执行DMN文件 350
    15.5 规则匹配 351
    15.5.1 MVEL表达式简介 351
    15.5.2 执行第一个表达式 351
    15.5.3 使用对象执行表达式 352
    15.5.4 规则引擎规则匹配逻辑 353
    15.5.5 自定义表达式函数 354
    15.5.6 Activiti中的自定义表达式函数 355
    15.5.7 销售打折案例 357
    15.6 本章小结 360
    第16章 整合第三方框架 361
    16.1 Spring Framework 362
    16.1.1 Spring的IoC 362
    16.1.2 Spring的AOP 362
    16.1.3 使用IoC 363
    16.1.4 使用AOP 364
    16.2 Activiti整合Spring 365
    16.2.1 SpringProcessEngineConfiguration 365
    16.2.2 资源的部署模式 367
    16.2.3 ProcessEngineFactoryBean 367
    16.2.4 在bean中注入Activiti服务 368
    16.2.5 在Activiti中使用Spring的bean 369
    16.3 Activiti整合Web项目 371
    16.3.1 安装Tomcat插件 371
    16.3.2 加入Spring 373
    16.3.3 整合Hibernate 375
    16.3.4 配置声明式事务 377
    16.3.5 添加Struts配置 378
    16.3.6 实现一个最简单的逻辑 378
    16.3.7 测试事务 380
    16.3.8 添加Activiti 380
    16.4 Activiti与Spring Boot 381
    16.4.1 Spring Boot项目简介 381
    16.4.2 下载与安装Maven 382
    16.4.3 开发第一个Web应用 383
    16.4.4 Activiti与Spring Boot的整合 386
    16.5 Activiti与JPA 388
    16.5.1 建立与运行JPA项目 388
    16.5.2 在Activiti中使用JPA 390
    16.5.3 Activiti、Spring与JPA的整合 391
    16.5.4 基于JPA的例子 393
    16.6 本章小结 395
    第17章 Activiti开放的Web Service 396
    17.1 Web Service简介 397
    17.1.1 Web Service 397
    17.1.2 SOAP协议 397
    17.1.3 REST架构 397
    17.1.4 REST的设计准则 398
    17.1.5 REST的主要特性 398
    17.1.6 SOAP RPC与REST的区别 399
    17.2 使用Sping MVC发布REST 399
    17.2.1 在Web项目中加入Spring MVC 400
    17.2.2 发布REST的Web Service 401
    17.2.3 使用Restlet编写客户端 402
    17.2.4 使用CXF编写客户端 402
    17.2.5 使用HttpClient编写客户端 403
    17.2.6 准备测试数据 403
    17.2.7 部署Activiti的Web Service 403
    17.2.8 接口访问权限 404
    17.2.9 访问Activiti接口 404
    17.3 流程存储服务 405
    17.3.1 上传部署文件 405
    17.3.2 部署数据查询 406
    17.3.3 部署资源查询 406
    17.3.4 查询单个部署资源 407
    17.3.5 删除部署 408
    17.4 本章小结 409
    第18章 Activiti功能进阶 410
    18.1 流程控制逻辑 411
    18.1.1 概述 411
    18.1.2 设计流程对象 411
    18.1.3 创建流程节点行为类 413
    18.1.4 编写业务处理类 414
    18.1.5 将流程XML转换为Java对象 414
    18.1.6 编写客户端代码 416
    18.2 Activiti的表单 416
    18.2.1 概述 416
    18.2.2 表单属性 417
    18.2.3 外部表单 418
    18.2.4 关于动态工作流和动态表单 419
    18.3 流程图XML 419
    18.3.1 节点元素 419
    18.3.2 衔接元素 420
    18.3.3 流程图与流程文件的转换 420
    18.4 流程操作 421
    18.4.1 流程回退 421
    18.4.2 会签 422
    18.5 本章小结 424
    第19章 办公自动化系统 425
    19.1 使用技术 426
    19.1.1 表现层技术 426
    19.1.2 MVC框架 426
    19.1.3 Spring和Hibernate 426
    19.2 功能简述 427
    19.2.1 系统的角色管理 427
    19.2.2 薪资计算流程 427
    19.2.3 请假流程 427
    19.2.4 薪资调整流程 427
    19.2.5 报销流程 428
    19.3 框架整合 428
    19.3.1 创建Web项目 428
    19.3.2 整合Spring 429
    19.3.3 整合Hibernate 430
    19.3.4 整合Struts2 432
    19.3.5 整合Activiti 433
    19.4 数据库设计 434
    19.4.1 薪资表 434
    19.4.2 请假记录表 434
    19.4.3 薪资调整记录表 435
    19.4.4 报销记录表 436
    19.5 初始化数据 437
    19.5.1 初始化角色数据 437
    19.5.2 薪资计算流程 438
    19.5.3 请假流程 439
    19.5.4 报销流程 439
    19.5.5 薪资调整流程 440
    19.6 角色管理 441
    19.6.1 用户组管理 442
    19.6.2 用户列表 443
    19.6.3 新建用户 445
    19.6.4 用户登录 446
    19.7 流程启动 447
    19.7.1 启动请假流程 447
    19.7.2 启动报销流程 450
    19.7.3 启动薪资调整流程 452
    19.8 申请列表 453
    19.8.1 申请列表的实现 453
    19.8.2 请假申请列表 454
    19.8.3 报销申请列表 455
    19.8.4 薪资调整列表 455
    19.8.5 查看流程图 456
    19.9 流程任务 457
    19.9.1 待办任务列表 457
    19.9.2 领取任务与受理任务列表 459
    19.9.3 查询任务信息 460
    19.9.4 任务审批 462
    19.9.5 运行OA的流程 463
    19.10 本章小结 463
微信公众号

热门文章

更多