新書推薦:
《
6S精益管理实战(精装版)
》
售價:NT$
458.0
《
异域回声——晚近海外汉学之文史互动研究
》
售價:NT$
500.0
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:NT$
454.0
《
无端欢喜
》
售價:NT$
347.0
《
股票大作手操盘术
》
售價:NT$
245.0
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:NT$
398.0
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:NT$
203.0
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:NT$
611.0
|
編輯推薦: |
1. 内容深入从笔者接触编程开始,就养成了查看源代码的习惯,书中的案例不仅仅讲解Activiti的功能,更模仿Activiti的思路去模拟功能的实现,读者可以深入了解其中的原理。
2. 开发环境与案例更贴近实际笔书中案例的开发环境、使用的框架以及工具均是来自企业的实际应用,案例的选取与研发过程更贴近实际。
3. 注释详细本书的代码,几乎每行Java代码均有注释,读者可以很容易的了解代码的意思,轻松的掌握相应的知识。
|
內容簡介: |
《疯狂工作流讲义:基于Activiti 6.x的应用开发》是一本介绍Java工作流领域的书,以Activiti为核心,内容囊括了多个流行的企业级Java EE框架,《疯狂工作流讲义:基于Activiti 6.x的应用开发》主要可分为以下几个部分:*部分:对Activiti的基础知识进行讲解,包括框架起源、基本的设计模式、数据库设置以及框架配置等,该部分知识可以帮助读者对Activiti的基础有一个更深入的认识,对Activiti的设计有一个初步的印象,该部分内容也可以作为整合Activiti到项目中的参考。 第二部分:从源代码的实现上讲解Activiti各个模块的API,除了讲述这些API的作用外,还会引领读者深入到这些API的内部,此部分内容可以作为一份详细的Activiti API的帮助文档。第三部分:详细讲述了BPMN2.0规范的内容,包括目前Activiti对该规范的实现情况,在讲解BPMN2.0规范时,将规范与Activiti的实现进行结合,在通俗易懂的案例下,对Activiti的实现以及BPMN2.0规范有更深入的了解。第四部分:Activiti8 支持DMN规范,本书将在第15章中讲述Activiti基于DMN规范的规则引擎。Activiti的规则引擎目前尚未正式面世,笔者研读当前版本的源代码,带领读者优先体会Activiti的规则引擎。第五部分:如何在实际企业应用使用Activiti,并与其他流行的开源框架进行整合,包括企业应用开发所必须的Web Service、企业服务总线、规则引擎、IoC框架和ORM框架等,除了本书主要的Activiti知识外,这些企业中常用框架的知识,也可以在该部分内容得到体现,通过学习这部分内容,可以极大丰富读者的实战知识,让读者可以成为一个更全面的技术人员。第六部分:在第18章中讲述了Activiti的核心架构以及Activiti的表单知识,本书*后一章,通过讲解一个办公系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。
|
關於作者: |
多年来从事Java开发、移动开发等方面的培训与研发工作,承接大型研发项目,有多款商用APP在Apple Store及Android市场上线。
|
目錄:
|
第1章 Activiti介绍1
1.1 工作流介绍2
1.2 BPMN 2.0规范简述2
1.2.1BPMN 2.0概述3
1.2.2BPMN 2.0元素3
1.2.3BPMN 2.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.4ProcessEngineConfiguration bean41
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.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.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)141
9.2启动流程142
9.2.1startProcessInstanceById方法142
9.2.2startProcessInstanceByKey方法144
9.2.3startProcessInstanceByMessage145
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.2cron表达式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定时器中间事件
|
內容試閱:
|
前 言
当今技术发展一日千里,各种技术框架如雨后春笋般涌现,技术正在改变世界、改变生活。作者从业十余年,面对如此变幻莫测的世界,亦难岿然不动,面对日新月异的知识,时常怀着一颗谦卑的心。只有学习,才能带来快乐,才不会被淘汰。程序是枯燥的,但程序又是美丽的,看似冷冰冰的代码,实则丰富多彩。
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日于广州
|
|