当一个业务需要的多个参与者来参与执行的时候,如果我们要自己编程的话,我们需要对业务非常的熟悉,并且在编程的时候要做一系列复杂的判断,如果出现第一种情况,我们要怎么办,如果出现第二种情况,我们又该怎么办,这是一个工作量非常大的事情,因为各个关系耦合性相对较高,所以我们又很难保证我们的系统一定会成功,然而大神们为了解决我们这个问题,专门开发了一个用于解决多用于之间操作的框架,工作流(WorkFlow)Activiti。
工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
举个例子,如果我们要请假,我们需要先找项目经理请假,然后项目经理找老总批示,老总最后决定这个假给还是不给,这样的话就是一个典型的工作流业务。话不多说,我们看看我们如果将这个过程在代码中如何利用工作流来呈现。
新建一个工程(Project),选择Dynamic Web Project,工程名称叫做ActivitiDemo01,既然是人家做好的一个框架,我们需要搭建一个基本的框架,因为这里是做的一个基本的演示,我就没有按照经典的SSH来搭建,而是简单的一个框架。
环境搭建
1.选择jar包。
下载activiti-5.13,打开后,把activiti-5.13\wars\activiti-rest\WEB-INF\lib个下的包都考到项目WEB-INF下的lib文件夹下,当然还需要一个MySQL的驱动jar包,这样我们需要的jar包就都有了。
2.配置文件
打开activiti-5.13文件夹-->打开wars,我们会看到activit-content.xml文件,拷贝下来,粘贴到工程下的resource愿文件夹下,重命名为acitiviti.cfg.xml,打开后把除引用外的内容都删除,并写上如下代码:
3.创建数据库
这里我们用的是activiti自带的数据库,因为在activitie.jar中的实体都有了,我们需要些一个测试方法,用来创建数据库。打开数据库(mysql),然后创建数据库activitiDemo,然后创建要给测试类在test的原文件夹下,代码如下:
这样一个基本的环境就搭建好了。有了jar包,有了配置文件,有了数据库,接下来我们就穿件一个简单的请假流程图。
workFlow画图
在resource下新建page-->diagrams,右键新建--->other-->Activiti Diagram,看到如下界面:
如上图:左半部分是画图区,右半部份是工具栏,这样我们就可以画了,咱们先画一个简单的请假吧:
点击空白处,设置流程图的ID和那么,点击任务,设置相应的名称,是不是非常的简单,那么下篇博客,我们会介绍他们的api和数据库表的使用。