美文网首页
springboot整合activiti工作流

springboot整合activiti工作流

作者: LinGeeHuy | 来源:发表于2018-03-18 19:08 被阅读0次

一、前言

Spring Boot基于“习惯优于配置”的原则,为大量第三方的库提供自动配置的功能。由Spring专家Josh Long主导开发的spring-boot-starters为我们在Spring Boot下使用Activiti做了自动配置。 其中主要自动配置包括: * 自动创建Activiti ProcessEngine的Bean; * 所有的Activiti Service都自动注册为Spring的Bean; * 创建一个Spring Job Executor; * 自动扫描并部署位于src/main/resources/processes目录下的流程处理文件。


二、开始

1.maven添加activiti的依赖

<dependency>

<groupId>org.activiti</groupId>

<artifactId>activiti-spring-boot-starter-basic</artifactId>

<version>5.21.0</version>

</dependency>

2.创建流程图文件

    2.1在resources下建立processes目录

    2.2在processes目录下将bpmn、bpmn.xml或bpmn20.xml等后缀的文件(activiti-explorer流程图导出文件)放入其中   

   


       三、编写测试代码

package com.real2tech.cloudreform.service;import org.activiti.engine.RuntimeService;import org.activiti.engine.TaskService;import org.activiti.engine.impl.persistence.entity.ExecutionEntity;import org.activiti.engine.task.Task;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.HashMap;import java.util.Map;@Servicepublic class ActivityService { private final Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private RuntimeService runtimeService; @Autowired private TaskService taskService; public boolean startActivity() { logger.info("工作流启动...."); Mapmap = new HashMap();

        map.put("apply", "zhangsan");

        map.put("approve", "lisi");

        // 流程启动

        ExecutionEntity pi1 = (ExecutionEntity) runtimeService.startProcessInstanceByKey("leave2", map);

        String processId = pi1.getId();

        Task task = taskService.createTaskQuery().processInstanceId(processId).singleResult();

        logger.info("task 第一步:{}", task);

        taskService.complete(task.getId(), map);// 完成第一步申请

        task = taskService.createTaskQuery().processInstanceId(processId).singleResult();

        logger.info("task 第二步:{}", task);

        String taskId2 = task.getId();

        map.put("pass", false);

        taskService.complete(taskId2, map);// 驳回申请

        task = taskService.createTaskQuery().processInstanceId(processId).singleResult();

        logger.info("task 第三步:{}", task);

        logger.info("工作流结束....");

        return false;

    }

}

       

       

       

       

       

       

       

       

       

       

           

       

           

   

       

           

               

           

               

           

               

           

               

           

               

           

               

           

               

               

           

               

               

           

               

               

           

               

               

           

               

               

               

                   

           

               

               

               

                   

相关文章

网友评论

      本文标题:springboot整合activiti工作流

      本文链接:https://www.haomeiwen.com/subject/lcneqftx.html