一、初步认识工作流
工作流就是将开发中由代码控制的业务流程状态抽取出来,然后进行统一控制的机制!比如在实际开发中,我们需要表明一个状态的改变,可以通过字段status来进行转化,常见的业务请假流程四个环节的状态有:'待提交审核','主管审核'、'经理审核'、'审核完成'。当我们在实现这几个状态的改变时,是通过硬编码实现的,执行待提交审核状态,就一定会到达主管审核,以此类推!如果业务需求发生了改变,流程只需要三个环节:待提交审核','主管审核'、'审核完成',这时我们就得去更改代码了,需要在进行'主管审核'后,直接将状态更改为;审核完成'状态,看起来这样好像也不麻烦,就更改一处!!但是,这只是一个小小的流程而已,如果业务再复杂一点呢,一旦更改流程,是不是代码需要大改了?这样就很不方便啊!而工作流,就帮我们解决了这个问题,工作流适用于业务复杂且需求经常性变更的流程中。
二、工作流介绍
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
三、 两种工作流环境的搭建:
a、activiti单独运行StandaloneProcessEngineConfiguration
b、activiti与spring整合SpringProcessEngineConfiguration
搭建时需要五种activity表处理策略,即databaseSchemaUpdate配置的五种值
false(默认):检查数据库表的版本和依赖库的版本, 如果版本不匹配就抛出异常。
true:构建流程引擎时,执行检查,如果需要就执行更新。 如果表不存在,就创建。(常用)
create-drop: 构建流程引擎时创建数据库表, 关闭流程引擎时删除这些表。
drop-create:先删除表再创建表。(常用,使用完成后改为true)
create: 构建流程引擎时创建数据库表, 关闭流程引擎时不删除这些表。
## 四、activiti.cfg.xml(activiti的配置文件)
Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。
定义数据库配置参数:
jdbcUrl: 数据库的JDBC URL。
jdbcDriver: 对应不同数据库类型的驱动。
jdbcUsername: 连接数据库的