工作流学习2----入门
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作流学习2----入门相关的知识,希望对你有一定的参考价值。
引入jar包
创建activiti表
第一种方式:使用代码来创建activiti工作流的表
import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration; import org.junit.Test; public class TestActiviti { @Test public void run() { // 1.创建流程引擎配置 ProcessEngineConfiguration configuration = new StandaloneProcessEngineConfiguration(); // 2设置配置对象连接数据库 configuration.setJdbcDriver("com.mysql.jdbc.Driver"); configuration.setJdbcUrl("jdbc:mysql:///db_activiti"); configuration.setJdbcUsername("root"); configuration.setJdbcPassword("root"); // 3.设置数据生成策略 : 设置在我们程序运行的时候创建db_activiti数据库表 configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); // 4.获取流程引擎对象 ProcessEngine processEngine = configuration.buildProcessEngine(); //打印测试 System.out.println(processEngine); } }
第二种方式:使用配置文件创建activiti工作流表
在类路径下创建activiti.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 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.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.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:///db_activiti" /> <property name="jdbcUsername" value="root" /> <property name="jdbcPassword" value="root" /> <property name="databaseSchemaUpdate" value="true" /> </bean> </beans>
然后通过代码来加载配置文件中的内容
public class Demo { @Test public void run() { /** * 第一种: * 直接指定文件的位置和名称,但是很少使用 */ /*// 1.创建流程引擎的配置对象:通过加载classpath下的配置文件 ProcessEngineConfiguration configuration = ProcessEngineConfiguration .createProcessEngineConfigurationFromResource("activiti.cfg.xml"); // 2.获取流程引擎 ProcessEngine processEngine2 = configuration.buildProcessEngine(); System.out.println(processEngine2);*/ /** * 第二种: * 需要注意的几个点:( 如果使用这种方法获取流程引擎) * 1. 首先规定工作流的配置文件必须放在classpath的根路径下 * 2.配置文件的名称必须叫做activiti.cfg.xml * 这种获取在实战开发中比较常用 */ ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); System.out.println(processEngine); } }
入门程序:
import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; public class QuickDemo { // 1.获取流程引擎,作为成员变量 private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 流程定义:ProcessDefinition * 预定义的规则被称为流程定义 * */ @Test public void run() { // 1.获取仓库服务:只要跟流程定义或者部署对象有关的都是用仓库服务,并加载资源文件,获取部署对象 Deployment deploy = processEngine.getRepositoryService().createDeployment() .name("HelloWorldDeploy") .addClasspathResource("diagrams/HelloWorld.bpmn") .addClasspathResource("diagrams/HelloWorld.png") .deploy(); // 2.查询信息 System.out.println(deploy.getId()); System.out.println(deploy.getName()); System.out.println(deploy.getDeploymentTime()); } /** * 启动流程服务 * 运行服务 */ @Test public void startProcessInstance() { // 1.流程定义的key String processDefinitionKey = "HelloWorldKey"; // 2.启动流程实例,获取到流程实例对象 ProcessInstance processInstance = processEngine.getRuntimeService() .startProcessInstanceByKey(processDefinitionKey); // 3.打印流程实例数据 System.out.println("流程实例id:"+processInstance.getId()); System.out.println("流程部署id:"+processInstance.getDeploymentId()); System.out.println("流程定义id:"+processInstance.getProcessDefinitionId()); } /** * 查看正在执行任务实例 */ @Test public void queryUserTask() { String asssignee = "巴莫"; Task task = processEngine.getTaskService().createTaskQuery() .taskAssignee(asssignee) .singleResult(); System.out.println("TaskId:"+task.getId()); System.out.println("流程实例ID:"+task.getProcessInstanceId()); } /** * 办理任务 */ @Test public void completeTask() { String taskId = "7504"; processEngine.getTaskService().complete(taskId); System.out.println("办理成功!!!"); } }
有一篇别人讲解的特别好,值得我们学习;
http://blog.csdn.net/zwk626542417/article/details/46594505
以上是关于工作流学习2----入门的主要内容,如果未能解决你的问题,请参考以下文章
Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)