1.不多说了直接上代码。都有注释。希望对新学习的小伙伴有所帮助。
package cn.com.agree.testactiviti;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@WebMvcTest(TestActivitiController.class)
public class TestActivitiController {
/**部署流程定义*/
@Test
public void deploymentProcessDefinition(){
//数据库连接
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createStandaloneInMemProcessEngineConfiguration();
config.setJdbcDriver("com.mysql.jdbc.Driver");
config.setJdbcUrl("jdbc:mysql://localhost:3306/activiti-demo?useUnicode=true&characterEncoding=utf8");
config.setJdbcUsername("root");
config.setJdbcPassword("root");
/*
DB_SCHEMA_UPDATE_FALSE 不能创建表,需要表存在
DB_SCHEMA_UPDATE_TRUE 先删除表再创建表
DB_SCHEMA_UPDATE_TRUE 如表不存在自动创建表
*/
config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
ProcessEngine processEngine=config.buildProcessEngine();
//与流程定义和部署对象相关的Service
RepositoryService repositoryService=processEngine.getRepositoryService();
DeploymentBuilder deploymentBuilder=repositoryService.createDeployment();//创建一个部署对象
deploymentBuilder.name("helloWorld入门程序");//添加部署的名称
deploymentBuilder.addClasspathResource("processes/MyProcess.bpmn");//从classpath的资源加载,一次只能加载一个文件
deploymentBuilder.addClasspathResource("processes/MyProcess.png");//从classpath的资源加载,一次只能加载一个文件
Deployment deployment=deploymentBuilder.deploy();//完成部署
//打印我们的流程信息
System.out.println("部署Id:"+deployment.getId());
System.out.println("部署名称Name:"+deployment.getName());
}
/**部署流程定义(Zip)*/
@Test
public void deploymentProcessDefinitionZip(){
//数据库连接
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createStandaloneInMemProcessEngineConfiguration();
config.setJdbcDriver("com.mysql.jdbc.Driver");
config.setJdbcUrl("jdbc:mysql://localhost:3306/activiti-demo?useUnicode=true&characterEncoding=utf8");
config.setJdbcUsername("root");
config.setJdbcPassword("root");
/*
DB_SCHEMA_UPDATE_FALSE 不能创建表,需要表存在
DB_SCHEMA_UPDATE_TRUE 先删除表再创建表
DB_SCHEMA_UPDATE_TRUE 如表不存在自动创建表
*/
config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE