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

下载链接: https://pan.baidu.com/s/1TZAvmia-6ad-pmECx4ftng 密码: s5qx

  • 出版社: 电子工业出版社; 第1版 (2018年1月1日)
  • 平装: 463页
  • 语种: 简体中文
  • 开本: 16
  • ISBN: 9787121330186, 7121330180
  • 条形码: 9787121330186
  • 商品尺寸: 25.7 x 18.8 x 2.3 cm
  • 商品重量: 839 g
  • 品牌: 电子工业出版社
  • ASIN: B077MYFG4M

编辑推荐

1. 内容深入从笔者接触编程开始,就养成了查看源代码的习惯,书中的案例不仅仅讲解Activiti的功能,更模仿Activiti的思路去模拟功能的实现,读者可以深入了解其中的原理。
2. 开发环境与案例更贴近实际笔书中案例的开发环境、使用的框架以及工具均是来自企业的实际应用,案例的选取与研发过程更贴近实际。
3. 注释详细本书的代码,几乎每行Java代码均有注释,读者可以很容易的了解代码的意思,轻松的掌握相应的知识。

作者简介

多年来从事Java开发、移动开发等方面的培训与研发工作,承接大型研发项目,有多款商用APP在Apple Store及Android市场上线。

目录

第1章Activiti介绍1
1.1工作流介绍2
1.2BPMN2.0规范简述2
1.2.1BPMN2.0概述3
1.2.2BPMN2.0元素3
1.2.3BPMN2.0的XML结构5
1.3Activiti介绍5
1.3.1Activiti的出现5
1.3.2Activiti的发展5
1.3.3选择Activiti还是jBPM5
1.4本章小结6
第2章安装与运行Activiti7
2.1下载与运行Activiti8
2.1.1下载和安装JDK8
2.1.2下载和安装MySQL9
2.1.3下载和安装Activiti10
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下载Eclipse17
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.6DMN规则引擎表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.1Activiti支持的数据库35
4.2.2Activiti与Spring35
4.2.3JDBC配置35
4.2.4DBCP数据源配置36
4.2.5C3P0数据源配置37
4.2.6Activiti其他数据源配置38
4.2.7数据库策略配置38
4.2.8databaseType配置39
4.3其他属性配置40
4.3.1history配置40
4.3.2asyncExecutorActivate配置41
4.3.3邮件服务器配置41
4.4ProcessEngineConfigurationbean41
4.4.1ProcessEngineConfiguration及其子类41
4.4.2自定义ProcessEngineConfiguration42
4.5Activiti的命令拦截器43
4.5.1命令模式44
4.5.2责任链模式45
4.5.3编写自定义拦截器47
4.6本章小结49
第5章流程引擎的创建50
5.1ProcessEngineConfiguration的buildProcessEngine方法51
5.2ProcessEngines对象51
5.2.1init方法与getDefaultProcessEngine方法51
5.2.2registerProcessEngine方向和unregister方法52
5.2.3retry方法53
5.2.4destroy方法53
5.3ProcessEngine对象54
5.3.1服务组件54
5.3.2关闭流程引擎55
5.3.3流程引擎名称56
5.4本章小结56
第6章用户组与用户57
6.1用户组管理58
6.1.1Group对象58
6.1.2创建用户组58
6.1.3修改用户组59
6.1.4删除用户组60
6.2Activiti数据查询61
6.2.1查询对象61
6.2.2list方法61
6.2.3listPage方法62
6.2.4count方法63
6.2.5排序方法63
6.2.6ID排序问题64
6.2.7多字段排序66
6.2.8singleResult方法67
6.2.9用户组数据查询68
6.2.10原生SQL查询69
6.3用户管理71
6.3.1User对象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.1Deployment对象85
7.1.2DeploymentBuilder对象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.1ProcessDefinition对象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.3IdentityLink对象102
7.3.4查询权限数据102
7.4RepositoryService数据查询与删除104
7.4.1查询部署资源104
7.4.2查询流程文件105
7.4.3查询流程图106
7.4.4查询部署资源名称107
7.4.5删除部署资源107
7.4.6DeploymentQuery对象108
7.4.7ProcessDefinitionQuery对象109
7.5本章小结109
第8章流程任务管理110
8.1任务的创建与删除111
8.1.1Task接口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.1Attachment对象130
8.4.2创建任务附件130
8.4.3附件查询132
8.4.4删除附件133
8.5任务评论与事件记录133
8.5.1Comment对象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)
9.2启动流程
9.2.1startProcessInstanceByld方法
9.2.2startProcessInstanceByKey方法
9.2.3stiutProcessInstanceByMessage方法
9.3流程参数
9.3.1设置与查询流程参数
9.3.2流程参数的作用域
9.3.3其他设置参数的方法
9.4流程操作
9.4.1流程触发
9.4.2触发信号事件
9.4.3触发消息事件
9.4.4中断与激活流程
9.4.5删除流程
9.5流程数据查询
9.5.1执行流查询
9.5.2流程实例查询
9.6本章小结
第10章历史数据管理和流程引擎管理
10.1历史数据管理
10.1.1历史流程实例查询
10.1.2历史任务查询
10.1.3历史行为查询
10.1.4历史流程明细查询
10.1.5删除历史流程实例和历史任务
10.2工作的产生
10.2.1异步任务产生的工作
10.2.2定时中间事件产生的工作
10.2.3定时边界事件产生的工作
10.2.4定时开始事件产生的工作
10.2.5流程抛出事件产生的工作
10.2.6暂停工作的产生
10.2.7无法执行的工作
10.3工作管理
10.3.1工作查询对象
10.3.2获取工作异常信息
10.3.3转移与删除工作
10.4数据库管理
10.4.1查询引擎属性
10.4.2数据表信息查询
10.4.3数据库操作
10.4.4数据表查询
10.5本章小结
第11章流程事件
11.1事件分类
11.1.1按照事件的位置分类
11.1.2按照事件的特性分类
11.2事件定义
11.2.1定时器事件定义
11.2.2cron表达式
11.2.3错误事件定义
11.2.4信号事件定义
11.2.5消息事件定义
11.2.6取消事件定义
11.2.7补偿事件定义
11.2.8其他事件定义
11.3开始事件
11.3.1无指定开始事件
11.3.2定时器开始事件
11.3.3消息开始事件
11.3.4错误开始事件
11.4结束事件
11.4.1无指定结束事件
11.4.2错误结束事件
11.4.3取消结束事件和取消边界事件
11.4.4终止结束事件
11.5边界事件
11.5.1定时器边界事件
11.5.2错误边界事件
11.5.3信号边界事件
11.5.4补偿边界事件
11.6中间事件
11.6.1中间事件分类
11.6.2定时器中间事件
11.6.3信号中间Catching事件
11.6.4信号中间Throwing事件
11.6.5消息中间事件
11.6.6无指定中间事件
11.7补偿中间事件
11.7.1补偿执行次数
11.7.2补偿的执行顺序
11.7.3补偿的参数设置
11.8本章小结
第12章流程任务
12.1BPMN2.0任务
12.1.1任务的继承
12.1.2XML约束
12.1.3任务的类型
12.2用户任务
12.2.1分配任务候选人
12.2.2分配任务代理人
12.2.3权限分配扩展
12.2.4使用任务监听器进行权限分配
12.2.5使用JUEL分配权限
12.3脚本任务
12.3.1脚本任务
12.3.2JavaScript脚本
12.3.3Groovy脚本
12.3.4设置返回值
12.3.5JUEL脚本
12.4服务任务
12.4.1Java服务任务
12.4.2实现JavaDde鲥e
12.4.3使用普通JavaBean
12.4.4在Activiti中调用WebService
12.4.5import元素
12.4.6itemDefinition和message元素
12.4.7interface与operation元素
12.4.8设置WebService参数与返回值
12.4.9发布WebService
12.4.10使用WebSeviceTask
12.4.11JavaDelegate属性注入
12.4.12在JavaDelegate中调用WebService
12.4.13Shell任务
12.5其他任务
12.5.1手动任务和接收任务
12.5.2邮件任务
12.5.3Mule任务和业务规则任务
12.6任务监听器
12.6.1使用class指定监听器
12.6.2使用expression指定监听器
12.6.3使用delegateExpression指定监听器
12.6.4监听器的触发
12.6.5属性注九
12.7流程监听器
12.7.1配置流程监听器
12.7.2触发流程监听器的事件
12.8本章小结
第13章其他流程元素
13.1子流程
13.1.1嵌入式子流程
13.1.2调用式子流程
13.1.3调用式子流程的参数传递
13.1.4事件子流程
13.1.5事务子流程
13.1.6特别子流程
13.2顺序流
13.2.1条件顺序流
13.2.2默认顺序流
13.3流程网关
13.3.1单向网关
13.3.2并行网关
13.3.3兼容网关
13.3.4事件网关
13.4流程活动特性
13.4.1多实例活动
13.4.2设置循环数据
13.4.3获取循环元素
13.4.4循环的内置参数
13.4.5循环结束条件
13.4.6补偿处理者
13.5本章小结
第14章Activiti与规则引擎
14.1概述
14.1.1规则引擎Drools
14.1.2Drools下载与安装
14.2开发第一个Drools应用
14.2.1建立Drools环境
14.2.2编写规则
14.2.3加载与运行
14.3Drools规则语法概述
14.3.1规则文件结构
14.3.2关键字
14.3.3规则编译
14.4类型声明
14.4.1声明新类型
14.4.2使用ASM操作字节码
14.4.3类型声明的使用
14.4.4类型的继承
14.4.5声明元数据
14.5函数和查询
14.5.1函数定义和使用
14.5.2查询的定义和使用
14.6规则语法
14.6.1全局变量
14.6.2规则属性
14.6.3条件语法
14.6.4行为语法
14.7Activiti调用规则
14.7.1业务规则任务
14.7.2制定销售单优惠规则
14.7.3实现销售流程
14.8本章小结
第15章基于DMN的Activiti规则引擎
15.1DMN规范概述
15.1.1DMN的出现背景
15.1.2Activiti与Drools
15.1.3DMN的XML样例
15.2DMN的XML规范
15.2.1决策
15.2.2决策表
15.2.3输入参数
15.2.4输出结果
15.2.5规则
15.3运行第一个应用
15.3.1建立项目
15.3.2规则引擎配置文件
15.3.3编写DMN文件
15.3.4加载与运行DMN文件
15.4规则引擎API简述
15.4.1创建规则引擎
15.4.2配置规则引擎
15.4.3数据查询
15.4.4执行DMN文件
15.5规则匹配
15.5.1MVEL表达式简介
15.5.2执行第一个表达式
15.5.3使用对象执行表达式
15.5.4规则引擎规则匹配逻辑
15.5.5自定义表达式函数
15.5.6Activiti中的自定义表达式函数
15.5.7销售打折案例
15.6本章小结
……
第16章整合第三方框架
第17章Activiti开放的WebService
第18章Activiti功能进阶
第19章办公自动化系统

序言

前 言


当今技术发展一日千里,各种技术框架如雨后春笋般涌现,技术正在改变世界、改变生活。作者从业十余年,面对如此变幻莫测的世界,亦难岿然不动,面对日新月异的知识,时常怀着一颗谦卑的心。只有学习,才能带来快乐,才不会被淘汰。程序是枯燥的,但程序又是美丽的,看似冷冰冰的代码,实则丰富多彩。
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项目的开发,对工作流有一定的认识,那么本书可以帮助你提升关于工作流的知识水平。如果你是一个从事过企业应用开发的程序员,本书同样适合你,本书的知识可以帮助你深入理解工作流引擎,使你可以将这些工作流框架应用到实际的企业生产中。
衷心感谢
首先非常感谢李刚老师,一直以来,他既是我的老师,也是我的技术后盾,非常幸运人生能有这样一位良师益友。
其次感谢出版社的编辑,为本书的出版做了很多细致的工作,并为本书提出了许多宝贵的意见。
最后感谢我的家人,你们是我前进的动力。


杨思雄
2017年7月29日于广州

文摘

版权页:



插图:




猜你喜欢

转载自blog.csdn.net/sinat_33899729/article/details/80181609
今日推荐