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

疯狂工作流讲义 基于Activiti 6.x的应用开发 pdf epub mobi txt 电子书 下载 2025

杨恩雄 著
图书标签:
  • 工作流
  • Activiti
  • Activiti 6
  • x
  • Java
  • 开发
  • 流程引擎
  • 业务流程
  • BPM
  • 企业级应用
  • 实战
  • 开源
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121330186
版次:1
商品编码:12246565
品牌:Broadview
包装:平装
开本:16开
出版时间:2017-11-01
用纸:胶版纸
页数:476
字数:800000
正文语种:中文

具体描述

编辑推荐

适读人群 :Java Web应用开发人员,计算机及相关专业在校生
  

  1.内容深入。书中的案例不仅仅讲解Activiti的功能,更模仿Activiti的思路去模拟功能的实现,读者可以深入了解其中的原理。

  2.开发环境与案例更贴近实际。书中案例的开发环境、使用的框架以及工具均是来自企业的实际应用,案例的选取与研发过程更贴近实际。

  3.注释详细。本书的代码,几乎每行Java代码均有注释,读者可以很容易地了解代码的意思,轻松掌握相应的知识。


  

内容简介

  

  工作流引擎Activiti经过多年的发展,已经变成一个成熟的工作流框架,在2017年,Activiti推出了全新的6.0版本,除了完善对BPMN规范的支持外,还加入了对DMN规范的支持。为了能让广大的程序开发者一探新版本Activiti的功能,笔者在第一版的基础上,编写了本书的第二版。

  书中会对Activiti的知识进行全面讲解,并从源码角度对Activiti进行深度剖析。本书会以Activiti为基础,讲述该框架的API使用、BPMN规范,除了这些工作流的基本知识外,还讲解了新的DMN规范引擎、Activiti整合SpringBoot等内容。在本书的第18章,深入Activiti的源代码,展示舍弃流程虚拟机(PVM)之后的Activiti,如何对流程进行控制,让读者能一窥Activiti的庐山真面目。zui后一章,以一个案例结束本书的内容,案例中整合Spring、Struts2等主流框架,目的是让读者在学习的过程中更贴近实际案例。


  

作者简介

  杨恩雄,从事十多年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

前言/序言

  前 言

  当今技术发展一日千里,各种技术框架如雨后春笋般涌现,技术正在改变世界、改变生活。作者从业十余年,面对如此变幻莫测的世界,亦难岿然不动,面对日新月异的知识,时常怀着一颗谦卑的心。只有学习,才能带来快乐,才不会被淘汰。程序是枯燥的,但程序又是美丽的,看似冷冰冰的代码,实则丰富多彩。

  Java是目前世界上应用最广泛的语言,在Java领域出现了众多优秀的框架和组件,这些组件正在慢慢提高编程的效率,使得编程这项原本枯燥的工作变得更为优雅与简单。在工作流领域,涌现出多个使用Java语言编写的框架,如OpenWFE、jBPM、Shark,甚至在国内市面上出现了不少国产的工作流引擎。近年来,出现了一款“全新”的工作流框架Activiti,经过几年的发展,Activiti已经成为一款成熟的工作流产品。笔者在2014年,基于Activiti 5.0版本,编写了《疯狂Workflow讲义》第一版,Activiti 6.0在2017年发布,为了帮助广大的Java研发者学习新框架,笔者对《疯狂Workflow讲义》进行升级,并将多年的实践经验融入本书中。

  本书经过约半年的编写,至今能得以付梓,得益于多方襄助,对他们的感激之情,难以言表。感谢传道并解惑的恩师,感谢聪颖而好学的读者,感谢善良和亲爱的家人,笔者会谢意永存、铭感不忘。

  本书内容概括

  本书是一本介绍Java工作流领域的书,以Activiti为核心,内容囊括了多个流行的企业级Java EE框架,全书主要可分为以下几个部分。

  第一部分:对Activiti的基础知识进行讲解,包括框架起源、基本的设计模式、数据库设置以及框架配置等,该部分知识可以帮助读者对Activiti有一个较为深入的认识,对Activiti的设计有一个初步的印象,该部分内容也可以作为整合Activiti到项目中的参考。

  第二部分:从源代码的实现上讲解Activiti各个模块的API,除了讲述这些API的作用外,还会引领读者深入到这些API的内部,此部分内容可以作为一个详细的Activiti API的帮助文档。

  第三部分:详细讲述了BPMN 2.0规范的内容,包括目前Activiti对该规范的实现情况。在讲解BPMN 2.0规范时,将规范与Activiti的实现进行结合,让读者在通俗易懂的例子示范下,对Activiti的实现及BPMN 2.0规范有较为深入的了解。

  第四部分:Activiti 6支持的DMN规范,本书将在第15章中讲述Activiti基于DMN规范的规则引擎。Activiti的规则引擎目前尚未正式面世,笔者研读了当前版本的源代码,并带领读者优先体会了Activiti的规则引擎。

  第五部分:讲述如何在实际企业应用中使用Activiti,并与其他流行的开源框架进行整合,包括企业应用开发所必须使用的Web Service、企业服务总线、规则引擎、IoC框架和ORM框架等。除了主要的Activiti知识外,企业中常用框架的知识,也在该部分内容中得到了体现。通过学习这部分内容,可以极大丰富你的实战知识,让你成为一个更全面的技术人员。

  第六部分:在第18章中讲述了Activiti的核心架构及Activiti的表单知识,本书最后一章,通过讲解一个办公系统的开发过程,让读者更了解Activiti在实际生产中的应用,从而理论层面,走上实践的道路。

  本书特点

  笔者长期工作于企业的IT部门,有着丰富的企业应用开发经验,因此本书具有以下特点。

  1. 内容深入

  从笔者接触编程开始,就养成了查看源代码的习惯,书中的示例不仅仅能帮助理解Activiti的功能,更借鉴了Activiti的思路去模拟功能的实现,所以读者能够深入了解其中的原理。

  2. 开发环境与示例更贴近实际

  本书中示例的开发环境、使用的框架及工具均来自企业的实际应用,示例的选取与研发过程更贴近实际。

  3. 注释详细

  本书的代码几乎每行都有注释,读者可以很容易地了解代码的意思,轻松掌握相应的知识。

  本书写给谁看

  如果你有一定的Java语言基础,进行过Web项目的开发,对工作流有一定的认识,那么本书可以帮助你提升关于工作流的知识水平。如果你是一个从事过企业应用开发的程序员,本书同样适合你,本书的知识可以帮助你深入理解工作流引擎,使你可以将这些工作流框架应用到实际的企业生产中。

  衷心感谢

  首先非常感谢李刚老师,一直以来,他既是我的老师,也是我的技术后盾,非常幸运人生能有这样一位良师益友。

  其次感谢出版社的编辑,为本书的出版做了很多细致的工作,并为本书提出了许多宝贵的意见。

  最后感谢我的家人,你们是我前进的动力。



智能时代的企业级流程引擎:Activiti 6.x 深度实践与应用开发 在当今快速变化的商业环境中,企业运营效率和流程自动化已成为决定竞争力的核心要素。从审批流程到复杂的业务协作,再到跨部门的联动,高效、灵活、可靠的工作流管理系统是企业数字化转型的基石。本书旨在为广大开发者、架构师以及对企业级应用开发感兴趣的读者,提供一个深入理解并掌握Activiti 6.x这一强大开源流程引擎的全面指南。 本书定位与价值 本书并非一本简单的API手册,而是将理论与实践紧密结合,从零开始,循序渐进地带领读者走进Activiti的世界。我们将深入剖析Activiti 6.x的核心架构、设计理念以及关键组件,讲解如何利用其强大的功能来构建和管理复杂的业务流程。本书的价值在于: 理论深度与实践广度兼顾: 我们不仅会讲解Activiti的原理,更会通过大量贴近实际业务场景的案例,展示如何在企业级应用中灵活运用Activiti。 版本聚焦与趋势把握: 聚焦Activiti 6.x,这是目前企业级应用中广泛应用的稳定版本,并对后续版本的发展趋势进行前瞻性分析,帮助读者掌握最新的技术动态。 从入门到精通的阶梯式学习: 无论您是初次接触工作流引擎,还是已有相关经验,本书都能为您提供清晰的学习路径,帮助您快速上手并逐步深入。 解决实际问题的能力培养: 本书强调的是解决实际问题的能力。通过阅读和实践本书内容,读者将能够独立设计、开发、部署和维护企业级的流程应用。 核心内容概览 第一部分:流程引擎原理与基础 本部分将为读者打下坚实的理论基础,理解Activiti 6.x为何能够成为一个强大的流程引擎。 流程引擎的演进与现代企业需求: 探讨传统工作流管理的局限性,以及现代企业对流程自动化、灵活性、可扩展性和集成性的新需求,引出Activiti的出现及其解决之道。 Activiti 6.x 架构剖析: 深入解析Activiti 6.x的核心组件,包括流程引擎(Process Engine)、流程仓库(Repository Service)、运行时服务(Runtime Service)、任务服务(Task Service)、历史服务(History Service)、身份服务(Identity Service)和管理服务(Management Service)等。理解它们之间的协同工作机制。 BPMN 2.0规范解读与Activiti的实现: BPMN(Business Process Model and Notation)是流程建模的事实标准。我们将详细解读BPMN 2.0规范中的关键元素(如任务、网关、事件、泳道等),并讲解Activiti如何将其转化为可执行的流程定义。 第一个Activiti流程:从建模到执行: 通过一个简单的“请假申请”流程,手把手带领读者完成流程模型的绘制、部署、流程实例的启动、任务的拾取与完成,以及流程实例状态的查询。 第二部分:Activiti 6.x 核心功能深度实践 本部分将进入Activiti 6.x的核心功能,通过丰富的实例,展示其强大的流程控制和管理能力。 流程模型设计与高级特性: 用户任务(User Task): 详解分配规则(Assignee, Candidate Users, Candidate Groups)、任务监听器(Task Listeners)等。 排他网关(Exclusive Gateway): 实现条件分支,处理不同决策路径。 并行网关(Parallel Gateway): 实现流程的并行执行,提高效率。 包容网关(Inclusive Gateway): 灵活控制并行分支的合并与拆分。 事件(Events): 涵盖起始事件、结束事件、中间捕获事件、中间抛出事件,以及定时事件(Timer Events)、消息事件(Message Events)、信号事件(Signal Events)等,实现流程的触发与响应。 子流程(Sub-processes): 讲解如何设计和调用子流程,实现流程的模块化和复用。 调用活动(Call Activity): 实现流程之间的嵌套调用,构建更复杂的流程体系。 泳道与池(Lanes & Pools): 理解如何在流程图中清晰地划分责任区域,明确参与者。 Java API 深度应用: Repository Service: 流程定义的新增、查询、删除,以及版本管理。 Runtime Service: 流程实例的启动、挂起、激活、终止,以及变量的管理。 Task Service: 任务的查询、拾取、认领、转派、签收、办理、回退等操作。 History Service: 查询已完成或已终止的流程实例和任务的历史信息,用于审计和分析。 Identity Service: 用户、群组、权限等身份信息的管理,与流程任务分配集成。 表单(Forms)与流程变量(Process Variables): 表单设计与集成: 讲解如何设计用户任务所需的表单,以及Activiti如何与前端表单引擎(如Flowable Forms、Form.io等)集成,实现动态表单。 流程变量管理: 深入理解局部变量、全局变量的概念,以及变量在流程流转中的传递与作用。 事件驱动的流程: 定时事件(Timer Events)的应用: 实现流程的延迟执行、周期性执行,以及超时提醒。 消息事件(Message Events)与信号事件(Signal Events): 学习如何在不同流程实例之间、甚至不同系统之间进行消息通信,实现异步解耦。 任务监听器(Task Listeners)与流程监听器(Execution Listeners): 事件驱动的自定义逻辑: 讲解如何通过监听器在流程事件(如任务创建、任务完成、流程启动、流程结束等)发生时,执行自定义的Java代码,实现流程的智能化和自动化。 第三部分:Activiti 6.x 集成与扩展 本部分将带领读者将Activiti 6.x无缝集成到实际的企业应用中,并探讨如何根据业务需求进行扩展。 与Spring Boot集成: 快速搭建Activiti开发环境: 利用Spring Boot的便利性,快速配置Activiti依赖,简化开发环境的搭建。 Spring Bean调用: 学习如何在流程监听器、Java服务任务中方便地调用Spring管理的Bean。 事务管理: 探讨Activiti与Spring事务管理的配合,保证数据的一致性。 RESTful API 详解与应用: Activiti RESTful API: 详细介绍Activiti 6.x提供的RESTful接口,使其可以被各种客户端(Web应用、移动应用、第三方系统)调用。 构建基于RESTful API的流程管理系统: 演示如何利用RESTful API,实现前端界面对流程的启动、任务管理、流程监控等功能。 自定义服务任务(Service Tasks): 集成外部系统: 学习如何通过自定义服务任务,调用外部的Web服务、数据库操作、消息队列等,实现流程与业务系统的深度集成。 Java Delegated Tasks: 详细讲解如何实现`JavaDelegatedTask`接口,编写自定义的Java代码来处理流程中的复杂逻辑。 用户与权限管理集成: 与企业现有用户体系集成: 讲解如何利用Activiti的Identity Service,与LDAP、OAuth2等身份认证系统集成,实现统一的用户和权限管理。 自定义用户与群组查询: 示例如何实现自定义的用户与群组查询逻辑,满足企业特有的组织结构需求。 流程监控与管理: Activiti Explorer/Admin: 介绍Activiti提供的可视化管理工具,用于流程设计、部署、监控和调试。 自定义监控界面: 讨论如何通过Activiti API,开发更符合企业需求的流程监控和报表系统。 流程的可视化与调试: 流程图的渲染与高亮: 学习如何在运行时动态渲染流程图,并高亮当前活动节点,方便实时监控。 流程实例的调试技巧: 介绍Activiti提供的调试工具和方法,帮助开发者快速定位和解决流程中的问题。 第四部分:高级主题与最佳实践 本部分将深入探讨Activiti 6.x的一些高级特性,并总结实战中的经验教训,帮助读者构建稳定、高效、可维护的流程应用。 流程的迁移与升级: 探讨在流程模型发生变化时,如何平滑地迁移现有流程实例,避免业务中断。 流程的国际化: 如何处理多语言的流程任务、表单等。 性能优化与调优: 分析Activiti的性能瓶颈,提供数据库优化、缓存策略、JVM调优等方面的建议。 集群与高可用: 讨论如何在集群环境下部署Activiti,确保流程引擎的高可用性。 安全性考虑: 讲解Activiti在安全方面的最佳实践,如权限控制、数据加密等。 与微服务架构的集成: 探讨Activiti如何作为独立的服务,或集成到微服务体系中,实现流程的解耦和复用。 实战案例深度解析: 选取几个典型的企业级应用场景(如:合同审批、订单处理、IT服务管理、人力资源流程等),深入剖析其Activiti实现方案。 本书特色 代码示例丰富且贴近实战: 每个关键技术点都配有可运行的Java代码示例,方便读者动手实践。 图文并茂,易于理解: 大量使用流程图、架构图、UML图等可视化元素,帮助读者清晰理解复杂概念。 强调解决实际问题: 避免空泛的理论讨论,聚焦于如何利用Activiti解决企业在流程自动化过程中遇到的实际挑战。 面向不同层次读者: 无论您是初学者还是有经验的开发者,都能从中获益。 目标读者 Java后端开发工程师 企业应用架构师 IT项目经理 对工作流引擎和流程自动化感兴趣的技术爱好者 希望提升企业运营效率和数字化水平的技术团队 通过阅读本书,您将不仅掌握Activiti 6.x的强大功能,更能深刻理解企业级流程引擎的设计理念和应用模式,从而在数字化转型浪潮中,构建出更智能、更高效、更具竞争力的企业应用。

用户评价

评分

对于我这样一个追求效率和质量的开发者来说,这本书简直是及时雨。它不仅提供了Activiti 6.x的应用指南,更重要的是,它分享了作者在实际项目开发中积累的宝贵经验和独到见解。书中关于流程版本管理、流程迁移以及如何优雅地处理流程升级的讲解,都让我茅塞顿开。这些细节看似微小,但在实际项目中却能极大地降低维护成本和规避潜在风险。 我特别喜欢书中关于“流程即代码”和“声明式流程设计”的理念,这让我看到了工作流引擎在提升开发效率和降低业务逻辑复杂性方面的巨大潜力。作者通过大量生动的案例,展示了如何利用Activiti的强大功能,快速构建出满足各种业务需求的复杂工作流。这本书的讲解风格非常接地气,没有空泛的理论,全是实实在在的干货。

评分

读这本书的过程,就像是在进行一场头脑风暴,不断激发新的思考。我最深刻的感受是,作者对Activiti 6.x的理解非常透彻,能够站在更高的层面去审视它的设计和应用。书中关于流程部署、任务管理、事件监听、任务转派等核心功能的讲解,都不仅仅是停留在“怎么做”的层面,更深入地探讨了“为什么这么做”以及“这样做有什么好处”。特别是关于流程的持久化和状态管理部分,作者详细讲解了Activiti是如何通过数据库来记录和恢复流程状态的,以及在面对高并发和分布式环境时,如何保证流程执行的可靠性。 书中提供的大量代码示例,质量非常高,并且可以直接在实际项目中使用。我尤其对书中关于自定义用户任务和网关的章节印象深刻,这部分内容对于扩展Activiti的功能、满足特定业务需求至关重要。作者通过清晰的步骤和详细的注解,让我能够轻松理解如何进行二次开发。此外,书中对Activiti的性能调优和监控方面也给予了足够的关注,这些往往是在项目上线后才会被重视的问题,但在这本书中得到了前置的讲解,非常有前瞻性。

评分

这本书真的让我眼前一亮!作为一个长期在业务一线和技术开发之间游走的开发者,我一直在寻找能够真正解决工作流落地痛点的实践性指导。市面上关于工作流引擎的书籍不少,但很多要么过于理论化,要么就是简单罗列API,真正能从“如何用好”的角度出发,深入浅出讲解的却不多。这本《疯狂工作流讲义》显然是后者。开篇的引言就非常有共鸣,作者深入剖析了在实际项目开发中,工作流引擎常常遇到的各种挑战,比如流程设计的灵活性、与现有系统的集成、性能优化以及复杂的权限管理等。这些痛点正是我们日常工作中常常头疼的问题。 我特别欣赏的是,作者并没有一上来就堆砌技术细节,而是从整体架构和设计理念入手,帮助读者建立起对Activiti 6.x核心概念的清晰认知。比如,在介绍流程引擎的核心组件时,作者用了大量的类比和流程图,让我这个初次接触Activiti的人也能迅速理解任务、事件、网关、参与者等概念的相互关系。而且,书中穿插的案例也非常贴合实际,从简单的请假审批到复杂的订单处理,每个案例都包含了从需求分析、流程建模到具体代码实现的完整过程。这不仅仅是学习API,更是学习如何将理论知识转化为可运行的解决方案。

评分

这本书给我带来的最大价值在于,它让我对如何构建一个健壮、灵活且易于维护的工作流系统有了全新的认识。作者在书中强调的“以业务为中心”的设计理念,贯穿了整本书的始终。他没有仅仅把Activiti当作一个技术工具,而是把它融入到整个业务流程的优化和自动化过程中。例如,在讲解如何集成第三方服务时,作者提供了多种不同的集成方案,并详细分析了每种方案的优缺点,帮助读者根据实际情况做出最佳选择。 尤其让我受益的是关于流程异常处理和补偿机制的讨论。在实际工作中,流程出错是不可避免的,而如何有效地处理这些错误并进行补偿,直接关系到业务的连续性和数据的准确性。书中提供了多种处理异常场景的策略,并给出了相应的代码实现,这些都是非常宝贵的实战经验。读完这本书,我感觉自己就像拥有了一张Activiti 6.x的“武功秘籍”,不仅学会了招式,更理解了招式背后的原理和应用场景。

评分

总而言之,这本书的价值远超我的预期。它不仅仅是一本技术手册,更像是一本关于如何将工作流技术真正落地、赋能业务的“实战宝典”。作者在书中对Activiti 6.x的设计哲学进行了深入的剖析,让我理解了为什么Activiti会以这样的方式工作,以及如何更好地利用它的优势。从流程的生命周期管理,到流程的监控与诊断,再到流程的性能优化,本书几乎涵盖了Activiti应用开发的方方面面。 让我印象深刻的是,作者在书中并没有回避Activiti 6.x可能存在的一些局限性,而是坦诚地指出了这些问题,并给出了一些规避或解决的建议。这种严谨的态度让我对作者的专业性和可靠性深感钦佩。书中的内容紧密结合了Activiti 6.x的最新特性,让我能够掌握最前沿的技术。这本书绝对是我近期阅读过的最值得推荐的技术书籍之一。

评分

大数据走起,多买几本书来看,内页白纸黑字,看着比较枯燥,改成彩印就好了。

评分

看评论说李刚的作品很有代表性 买来学习 也很相信京东的品质 物流一如既往的快 看完再来追加评价

评分

书本不错,质量很好,价格也很公道,好好学习

评分

质量非常好,物流相当快,不错!

评分

还可以吧,凑单一起买的,搞活动,挺便宜的~~~~

评分

京东打折,买着装修用,哈哈哈

评分

经典书籍,品质很好,很推荐,极速送货很赞

评分

开发狗日常学习自家用,老板要加工资啊

评分

此用户未填写评价内容

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有