标签:activiti
当一个业务需要的多个参与者来参与执行的时候,如果我们要自己编程的话,我们需要对业务非常的熟悉,并且在编程的时候要做一系列复杂的判断,如果出现第一种情况,我们要怎么办,如果出现第二种情况,我们又该怎么办,这是一个工作量非常大的事情,因为各个关系耦合性相对较高,所以我们又很难保证我们的系统一定会成功,然而大神们为了解决我们这个问题,专门开发了一个用于解决多用于之间操作的框架,工作流(WorkFlow)Activiti。
工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
举个例子,如果我们要请假,我们需要先找项目经理请假,然后项目经理找老总批示,老总最后决定这个假给还是不给,这样的话就是一个典型的工作流业务。话不多说,我们看看我们如果将这个过程在代码中如何利用工作流来呈现。
新建一个工程(Project),选择Dynamic Web Project,工程名称叫做ActivitiDemo01,既然是人家做好的一个框架,我们需要搭建一个基本的框架,因为这里是做的一个基本的演示,我就没有按照经典的SSH来搭建,而是简单的一个框架。
下载activiti-5.13,打开后,把activiti-5.13\wars\activiti-rest\WEB-INF\lib个下的包都考到项目WEB-INF下的lib文件夹下,当然还需要一个mysql的驱动jar包,这样我们需要的jar包就都有了。
打开activiti-5.13文件夹-->打开wars,我们会看到activit-content.xml文件,拷贝下来,粘贴到工程下的resource愿文件夹下,重命名为acitiviti.cfg.xml,打开后把除引用外的内容都删除,并写上如下代码:
[html] view plain copy
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activitiDemo?useUnicode=true&characterEncoding=utf8"></property>
<property name="jdbcUsername" value="root"></property>
<property name="jdbcPassword" value="root"></property>
<property name="databaseSchemaUpdate" value="true"></property>
</bean>
这里我们用的是activiti自带的数据库,因为在activitie.jar中的实体都有了,我们需要些一个测试方法,用来创建数据库。打开数据库(mySql),然后创建数据库activitiDemo,然后创建要给测试类在test的原文件夹下,代码如下:
[java] view plain copy
@Test
public void test() {
ProcessEngine processEngine = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
.buildProcessEngine();
System.out.println("processEngine:"+ processEngine);
}
现在mysql中新建一个数据库,叫activitiDemo,然后执行上边的代码来创建表,这个过程稍微长一些,耐心等待即可。
这样一个基本的环境就搭建好了。有了jar包,有了配置文件,有了数据库,接下来我们就穿件一个简单的请假流程图。
在resource下新建page-->diagrams,右键新建--->other-->Activiti Diagram,看到如下界面:
如上图:左半部分是画图区,右半部份是工具栏,这样我们就可以画了,咱们先画一个简单的请假吧:
点击空白处,设置流程图的ID和那么,点击任务,设置相应的名称,是不是非常的简单
标签:activiti
原文地址:http://15201565095.blog.51cto.com/12905158/1973213