前言:
在做项目的时候,公司的项目要用到Activiti,所以,我就开始了各种资料的搜寻,包括视频,代码,源码等等等等,都尝试了一遍,但是还是感觉学不好。有一本书还挺不错的,推荐给大家,这一系列的书其实都挺不错的《Activiti in action》,可以有中文版的电子档,建议可以去买一本这样的书。毕竟嘛,支持原创。
如果是刚开始学习Activiti的话,其实最重要就是BPMN2.0规范了,Activiti只是一种实现了大部分BPMN2.0规范的工作流框架而已。但是我不建议大家一开始就去看BPMN2.0规范,因为看不懂,我也看不懂。那么学习Activiti怎么样才是有效的呢?
其实Acitivit中涉及到很多的数据库表,总共有23张,但是有部分的数据表是没有用到的,当然这个得看具体功能了。如下图是23张Activiti表,记住,这23张表不是让你手动去创建的,在Activiti当中已经有关于这方面的操作了。所以你别担心。接下来我就来说说,怎么去创建Activiti的23张表吧。如下图是23张表:
1、既然是学习Activiti的框架,那么首先肯定是离不开项目了,首先创建一个项目,所有项目都采用Maven管理,这样就省去依赖关系的jar包。
创建Maven项目自行网上搜索,这里不再赘述。那么导入jar包,也自然而然是在maven项目当中的pom.xml文件啦。
如下图是maven项目当中的pom文件图片:
这里关于dependency我就不多说了。其他的需要的jar包请自行添加。
2、添加完jar包的依赖之后,在联网的情况下,会自动下载相关的jar包,不需要你管,下载完成以后,可以在如下的Maven Dependencies中查看到对应的jar包。
3、我们添加一个Junit测试,所以添加一下JUnit4的jar包。如上图所示:
4、在src/main/java目录下创建一个com.xqkj.java包,在这个包下编写一个java类,名称为TestJava.如下图所示:(resources下的activiti.cfg.xml文件没有没关系,可以删除)
5、在该类当中填入编写如下的代码:(关于具体配置细节,先有个大概的认识)
package com.xqkj.test;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.junit.Test;
public class TestJava {
/**使用代码创建工作流需要的23张表*/
@Test
public void createTable(){
//流程引擎ProcessEngine对象,所有操作都离不开引擎对象
ProcessEngineConfiguration processEngineConfiguration =
ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
//连接数据库的配置
processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/yarcl?useUnicode=true&characterEncoding=utf8");
processEngineConfiguration.setJdbcUsername("root");
processEngineConfiguration.setJdbcPassword("root");
//三个配置
//1.先删除表,再创建表:processEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP="create-drop"
//2.不能自动创建表,需要表存在:processEngineConfiguration.DB_SCHEMA_UPDATE_FALSE="false"
//3.如果表存在,就自动创建表:processEngineConfiguration.DB_SCHEMA_UPDATE_TRUE="true"
processEngineConfiguration.setDatabaseSchema(processEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//获取工作流的核心对象,ProcessEngine对象
ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
System.out.println("processEngine:"+processEngine+"Create Success!!");
}
}
6、这个时候,双击createTable这个类,进行单元测试,如果控制台出现如下的内容,说明23张表创建成功!