科技>计算机>计算机科学
疯狂工作流讲义——基于Activiti6.x的应用开发

疯狂工作流讲义——基于Activiti6.x的应用开发"

作者:杨恩雄
ISBN:9787121330186
定价:¥79.0
字数:800千字
页数:476
出版时间:2017-11
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

《疯狂工作流讲义:基于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是目前世界上应用最广泛的语言,在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日于广州

目录

第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 EE企业应用开发,曾任中企动力系统设计师、中企开源项目经理、数码辰星科技公司项目经理,参与过多个企业级项目的设计与架构工作,曾负责辰星“电影票网络销售系统”的整体架构,精通Activiti、Drools、ESB等开源技术,在SOA、SaaS、大数据应用、互联网系统架构方面有着丰富的经验,曾出版《疯狂Java实战演义》《疯狂Workflow讲义》《疯狂Spring Cloud微服务架构实战》等书籍。

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个