`

springboot集成activiti5

 
阅读更多

首先maven配置文件pom.xml增加activiti配置

<!-- 工作流 -->
<dependency>
	<groupId>org.activiti</groupId>
	<artifactId>activiti-spring-boot-starter-basic</artifactId>
	<version>${activiti.version}</version>
</dependency>

 activiti.version = 5.22.0

然后查看jar包是否被引入:

 在resource下创建activiti的工作流文件的存放文件夹processes



 注意刚创建文件夹后processes为空,如果想启动项目测试请在配置文件中加入如下配置



 我使用的是eclipse的activiti图形化插件:配置教程:https://blog.csdn.net/lifupingcn/article/details/61197563

创建demo2.bpmn


代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
  <process id="demo2" name="My process" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <userTask id="usertask1" name="请假"></userTask>
    <userTask id="usertask2" name="审批"></userTask>
    <endEvent id="endevent1" name="End"></endEvent>
    <sequenceFlow id="flow1" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
    <sequenceFlow id="flow3" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_demo2">
    <bpmndi:BPMNPlane bpmnElement="demo2" id="BPMNPlane_demo2">
      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="130.0" y="180.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
        <omgdc:Bounds height="55.0" width="105.0" x="271.0" y="170.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
        <omgdc:Bounds height="55.0" width="105.0" x="471.0" y="170.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="690.0" y="180.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
        <omgdi:waypoint x="576.0" y="197.0"></omgdi:waypoint>
        <omgdi:waypoint x="690.0" y="197.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
        <omgdi:waypoint x="376.0" y="197.0"></omgdi:waypoint>
        <omgdi:waypoint x="471.0" y="197.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
        <omgdi:waypoint x="165.0" y="197.0"></omgdi:waypoint>
        <omgdi:waypoint x="271.0" y="197.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

 保存后发现生成了demo2.png,这个是生成的流程图片。

下面编写测试代码:

package com.supershen.example.web.demo;

import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/demo/activiti")
public class ActivitiTestController {
	@Autowired
	private RepositoryService repositoryService;
	@Autowired
	private RuntimeService runtimeService;
	@Autowired
	private TaskService taskService;

	@GetMapping("/test")
	public void firstDemo() {

		// 根据bpmn文件部署流程
		Deployment deployment = repositoryService.createDeployment().addClasspathResource("demo2.bpmn").deploy();
		// 获取流程定义
		ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
				.deploymentId(deployment.getId()).singleResult();
		// 启动流程定义,返回流程实例
		ProcessInstance pi = runtimeService.startProcessInstanceById(processDefinition.getId());
		String processId = pi.getId();
		System.out.println("流程创建成功,当前流程实例ID:" + processId);

		Task task = taskService.createTaskQuery().processInstanceId(processId).singleResult();
		System.out.println("第一次执行前,任务名称:" + task.getName());
		taskService.complete(task.getId());

		task = taskService.createTaskQuery().processInstanceId(processId).singleResult();
		System.out.println("第二次执行前,任务名称:" + task.getName());
		taskService.complete(task.getId());

		task = taskService.createTaskQuery().processInstanceId(processId).singleResult();
		System.out.println("task为null,任务执行完毕:" + task);
	}
}

访问:http://localhost:8080/base-admin-mybatis/demo/activiti/test

得到如下结果证明集成成功:



 如果报:org.activiti.engine.ActivitiIllegalArgumentException: resource 'demo2.bpmn' not found

是因为未将processes配置到classpath中,所以找不到。

解决办法:进入java builder path



 点击ok,重新启动项目,重试,访问成功:



 另外说一下eclipse的activiti插件支持junit测试类生成,右键bpmn文件Activiti-》Generate unit test 之后会在test文件夹下生成测试文件用于测试,大家可参考使用。

 

 

  • 大小: 34.2 KB
  • 大小: 23.2 KB
  • 大小: 54.7 KB
  • 大小: 84.6 KB
  • 大小: 27.1 KB
  • 大小: 56 KB
  • 大小: 69.7 KB
分享到:
评论

相关推荐

    springboot集成activiti项目Demo源码分享

    《SpringBoot集成Activiti项目Demo源码解析》 在当今的软件开发中,工作流引擎已经成为企业级应用不可或缺的一部分,而Activiti作为一款强大的、开源的工作流引擎,被广泛应用于业务流程管理(BPM)系统。...

    SpringBoot集成Activiti完整工作流管理系统源码及SQL

    SpringBoot集成Activiti完整工作流管理系统源码及SQL 包含如下主要内容: 1、工作流完整案例(请假流程、请假会签流程Demo) 2、系统用户权限、工作流用户和用户组管理 3、支持在线流程模型定义、部署、导出。也可用...

    SpringBoot集成Activiti案例

    **SpringBoot集成Activiti实战详解** 在现代企业级应用开发中,流程管理是不可或缺的一部分,而Activiti作为一款流行的开源工作流引擎,被广泛用于实现业务流程自动化。本案例将探讨如何将Activiti与SpringBoot相...

    springboot+activiti集成Demo

    1. **SpringBoot集成**: 集成步骤包括添加Activiti依赖到`pom.xml`,配置Activiti的`application.properties`,以及创建Activiti的配置类,例如`ActivitiAutoConfiguration`,用来初始化Activiti的相关组件。...

    SpringBoot 集成 Activiti在线设计器(完整Demo)

    小编 做的这个项目有部分功能用到了 Activiti工作流,目前对工作流的掌握程度是基本会用,我之前写过一篇 Activiti 入门篇,当前这篇文章是属于Activiti 实战部分,如果你想知道Activiti 工作流是如何使用的话,那就...

    springboot整合activiti完整demo

    SpringBoot集成Activiti** 集成主要分为以下步骤: - **添加依赖**:在`pom.xml`中引入SpringBoot的Starter Web和Activiti的相关依赖,确保项目可以处理HTTP请求并运行Activiti的工作流引擎。 ```xml ...

    springboot整合activiti6.0的代码demo

    springboot整合activiti6.0的代码demo,首先按照自己的数据库地址修改springboot地址,然后运行AppBoot启动类,启动工程,然后通过postman工具访问MyController类中的方法即可观察结果。

    springboot集成activiti5.22

    1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 3. 岗位管理:配置系统用户所属担任职务。...17.集成activiti5.22

    springboot整合activiti5.22实现页面流程设计项目

    springboot整合activiti5.22实现页面流程设计项目,可直接启动,自动建表,调用接口http://localhost:8080/models/newModel,创建流程模型后,可直接访问http://localhost:8080/static/modeler.html?modelId=75001...

    SpringBoot整合Activiti7的实现代码

    Activiti7发布正式版之后,它与SpringBoot2.x已经完全支持整合开发。我们可以将Activiti7与SpringBoot整合开发的坐标引入到工程中,从而达到SpringBoot支持Activti7整合。 1.使用IDEA创建SpringBoot项目 在工程的...

    springboot集成activiti demo

    **SpringBoot集成Activiti实战详解** 在现代企业级应用开发中,流程管理是不可或缺的一部分,而Activiti作为一款开源的工作流引擎,深受开发者喜爱。本文将深入探讨如何将Activiti与SpringBoot进行集成,实现一个...

    SpringBoot集成activitiModeler

    SpringBoot 1.5.7+Activiti 5.22.0 +Swagger 2.7.0 工作流整合了ActivitModeler,可以直接使用官方原生画流程图 swagger地址:http://localhost:8084/swagger-ui.html#!/ avtivitiModeler地址:...

    springboot-activiti-test-master.zip

    在"springboot-activiti-test-master.zip"压缩包中,包含了已经配置好的SpringBoot和Activiti集成示例。你可以直接导入IDEA,通过源代码学习如何设置配置、创建流程模型以及调用流程服务。这个项目提供了清晰的结构...

    Springboot 整合activiti及使用案例

    **SpringBoot 整合Activiti工作流详解** 在企业级应用开发中,工作流管理系统扮演着重要的角色,它能够帮助实现业务流程自动化,提高工作效率。Activiti 是一个开源的工作流引擎,它支持 BPMN 2.0 标准,使得业务...

    SpringBoot整合Activiti5.22 Demo

    SpringBoot以其轻量级、快速启动和易于集成的特点,成为了现代Java开发的首选框架。将SpringBoot与Activiti结合,可以实现高效、灵活的业务流程自动化。 本示例旨在展示如何在SpringBoot项目中整合Activiti 5.22...

    springBoot-activiti-modeler-master.zip

    总结,SpringBoot集成Activiti和Activiti Modeler提供了一种高效、灵活的方式来管理和执行业务流程。通过Java反射技术,我们可以实现动态表单绑定,增强了系统的可扩展性和灵活性。这样的组合在实际开发中有着广泛的...

    springboot2.x 集成activiti5.22+ modeler可视化界面

    在SpringBoot中集成Activiti,我们可以通过配置Activiti的 Starter 来快速启用服务,并通过API或注解来控制流程的启动、结束等操作。 **Modeler 可视化界面** 是Activiti的一个重要组成部分,它提供了一个图形化的...

    springboot+activiti+vue+thymleaf 版本

    标题中的“springboot+activiti+vue+thymleaf 版本”指的是一个基于Spring Boot、Activiti、Vue.js和Thymeleaf的综合工作流管理系统。这个系统结合了四个关键的技术栈,构建了一个功能丰富的业务流程自动化平台。 1...

    【二十二】springboot整合activiti7(1) 实战演示篇项目前后端demo代码

    通过这个实战项目,开发者可以深入学习如何在SpringBoot应用中集成和使用Activiti7,从而实现高效、灵活的业务流程管理。在实际项目中,可以根据需求调整和扩展这些基础功能,以满足特定的业务场景。

    springboot 集成activiti编辑器

    SpringBoot集成Activiti编辑器是将企业流程管理框架Activiti与SpringBoot应用相结合,以便在SpringBoot环境中便捷地实现业务流程的设计、部署和执行。这个集成可以帮助开发者在微服务架构中构建灵活、可扩展的工作流...

Global site tag (gtag.js) - Google Analytics