1. 环境
数据库:mysql 5.7.19
开发环境:idea+maven
操作系统:windows10
工具:navicat premium 12.0.11
2. 环境准备
(1)安装配置数据库
* mysql5.7.19的安装配置:参考我的上一篇博文http://blog.youkuaiyun.com/jenyzhang/article/details/77932328
* 安装navicat premium 12.0.11
安装好navicat之后,连接到mysql (如下图)
连接到mysql之后,新建数据库“activiti”(如下图)
(2)安装配置maven
2.1 下载Maven
官方地址:http://maven.apache.org/download.cgi
2.2 修改环境变量
2.2.1新建MAVEN_HOME
2.2.2在path中加入:%MYSQL_HOME%\bin
2.2.3 重启,查看是否配置成功
mvn -version
2.2.4 添加本地库(修改conf/settings.xml)
添加
<localRepository>E:\Program Files (x86)\m2</localRepository>
这里
E:\Program Files (x86)\m2 是本地库的路径
(3)idea安装,与maven配置
idea安装好之后,maven配置方法如下:
3.1 file-->settings-->maven
3 正式开始
file-->new-->project-->maven
(2)编辑pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.activiti</groupId>
<artifactId>activiti-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
</project>
(3)在java/resource下新建activiti.cfg.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8"/>
<property name="jdbcUsername" value="root"/>
<property name="jdbcPassword" value="root"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
</beans>
上面是actviti配置中mqsql数据库联连的配置
(4)在test/java下新建测试类:createTable.java 创建activiti所需的23张表
package com.activiti.createTable1;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.repository.Deployment;
import org.junit.Test;
/**
* Created by zyni on 2017/10/6.
*/
public class createTable {
@Test
public void createTableTest(){
//表不存在的话创建表
ProcessEngine processEngine = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
.buildProcessEngine();
System.out.println("------processEngine:" + processEngine);
}
}
运行该测试类
可以看到下面的输出信息
然后查看mysql数据库,可以看到“activiti”数据库下己经新建了23张表
(5)布署一个流程
接下来就可以进行activiti的各项操作了。首先,我们来布署一个流程。
先在java/resource/下新建diagrams目录,然后把流程图放到这个目录下
流程图类似于这样:
然后,我们再写一个测试类.deployTest.java
package com.activiti.createTable1;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.repository.Deployment;
import org.junit.Test;
/**
* Created by zyni on 2017/10/6.
*/
public class deployTest {
@Test
public void deployTest1(){
//表不存在的话创建表
ProcessEngine processEngine = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
.buildProcessEngine();
System.out.println("------processEngine:" + processEngine);
//创建流程
Deployment deployment = processEngine.getRepositoryService().createDeployment().name("请假程序")
.addClasspathResource("diagrams/leave.bpmn").addClasspathResource("diagrams/leave.png").deploy();
System.out.println(deployment.getId());
System.out.println(deployment.getName());
}
}
运行之后,可以在mysql中查到该布署好的流程