springBoot搭建activiti工作流
1、新建maven项目
2、依赖 的pom文件
<?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.jerryl</groupId><artifactId>spring-boot-with-activiti</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>spring-boot-with-activiti</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><activiti.version>5.18.0</activiti.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--activiti begin--><dependency><groupId>org.activiti</groupId><artifactId>activiti-engine</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-modeler</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-diagram-rest</artifactId><version>${activiti.version}</version></dependency><!--activiti end--></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
3、新建springboot的配置文件
server:port: 8080
security:basic:enabled: falsespring:datasource:url: jdbc:mysql://127.0.0.1:3306/zhou?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNullusername: rootpassword: 123456
4、新建spring的启动文件
package com.jerryl;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;@SpringBootApplication
@ComponentScan
public class SpringBootWithActivitiApplication {public static void main(String[] args) {SpringApplication.run(SpringBootWithActivitiApplication.class, args);}
}
5、启动springboot如果数据库出现activiti的表格,说明搭建完成。
想要源码的给小编留言………
activiti:
activiti是一款BPM的框架,processEngine是activiti的核心,负责流程流程生成的各种数据及实例,监控和管理流程。activiti默认操作是数据库的是mybatis。
注:工作流activiti的表是管理流程的而业务的数据都需要用户自己创建和维护。
activiti的7个服务
RuntimeService:主要与流程实例有关,流程定义是指设计的一个流程,流程实例是指真正的一个事件,比如请假流程是设计的一个流程,小明请假则是一个具体的流程实例。这项服务可以创建一个流程实例,即启动一个流程,中断或者激活一个流程实例,以及设置信号事件触发器,消息时间触发器(这些和启动流程的条件有关),设置变量,事件监听等一系列和流程实例有关的操作。
HistoryService:主要是用于查询流程的运行记录,只有查询和删除的操作,没有增加和修改。主要查询活动实例,细节,流程实例,变量实例以及任务实例,对应数据库中相应的表。
IdentityService:主要用于控制用户和用户组,要注意流程引擎本身是没有用户限制的,在用户任务的时候可以指定用户完成,这个不是必须的。这个服务包括用户以及用户组的:创建,保存和删除,以及它们之间的关系,用户详细信息的创建等操作。
TaskService:主要用于流程中的任务节点的相关操作,BPMN实际上有很多种类型的任务,不单单是用户任务,这个的设置主要是针对用户任务的相关设置,其它类型的任务并不需要太多的设置,大部分都是自动类型的任务,需要相应的触发条件。
FormService:主要用于表单数据的保存和获取,有启动流程的表单和任务过程中产生的表单。
ManagementService:这个服务功能比较杂,看里面的方法大致有这些功能:查询数据库表的相关信息,Job相关的查询,删除。还有事件日志的相关操作。总的来说是activiti的一些全局相关的操作。
DynamicBpmnService:这个服务是5.19版本后新增的一个服务,和RepositoryService的作用相似,都是与流程定义有关,但是却完全不同。从名字上来看是动态的BPMN服务,看里面的方法都是改变流程的相关属性。这个方法就可以直接操作流程定义,而不需要读取模型,再设计部署(一个流程基本要经过创建模型,设计画图,生产BPMN的XML文件,再部署成流程定义,这个服务就可以直接操作流程定义,不会改变原本的文件,个人感觉可能会带来一些的问题,但是目前对于流程流转内部实现还没有完全理解,使用要谨慎,比如有的流程正在运行老版本的定义,这个时候改变流程定义,接下来怎么流转之类的都是问题)。
流程图审批人的设置
activiti的流程
1、部署流程
repositoryService.createDeployment() //创建部署.name(deployFile.getOriginalFilename()) //需要部署流程名称.addZipInputStream(new ZipInputStream(deployFile.getInputStream()))//添加ZIP输入流.deploy();//开始部署
2、启动流程
Map<String,Object> variables=new HashMap<String,Object>();variables.put("leaveId", leaveId);// 启动流程ProcessInstance pi= runtimeService.startProcessInstanceByKey("hello",variables); // 根据流程实例Id查询任务Task task=taskService.createTaskQuery().processInstanceId(pi.getProcessInstanceId()).singleResult(); // 完成 学生填写请假单任务 taskService.complete(task.getId()); Leave leave=leaveService.findById(leaveId);//修改状态leave.setState("审核中");leave.setProcessInstanceId(pi.getProcessInstanceId());// 修改请假单状态leaveService.updateLeave(leave);
springBoot搭建activiti工作流相关推荐
- SpringBoot集成activiti工作流
SpringBoot集成activiti工作流(模拟请假流程) 链接:https://pan.baidu.com/s/10BT_Zertm1WBBrlrdE-QWQ 提取码:zsq6 学习视频地址见 ...
- # SpringBoot 整合 Activiti 工作流框架
SpringBoot 整合 Activiti 工作流框架 Activiti 介绍 Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调 ...
- SpringBoot整合Activiti工作流
依赖: 新建springBoot项目时勾选activiti,或者在已建立的springBoot项目添加以下依赖: <dependency><groupId>org.activi ...
- Activiti工作流之流程分支
回顾: Activiti工作流之简介与环境搭建 Activiti工作流之流程部署和相关操作 Activiti工作流之任务的运行/查询/完成 Activiti工作流之流程变量 Activiti工作流之历 ...
- Spring Boot + Activiti 工作流框架搭建
文章目录 前言: Java工作流引擎与Activiti 框架搭建环境与步骤总览 创建Spring Boot项目 引入activiti等依赖包 安装activiti designer 绘制流程 流程名以 ...
- Activiti工作流使用之SpringBoot整合Activiti
Activiti工作流使用之SpringBoot整合Activiti 文章目录 Activiti工作流使用之SpringBoot整合Activiti 一.springboot整合Activiti环境依 ...
- activiti工作流引擎入门教程
activiti简介 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准. Activiti是一种轻量级,可嵌入的BPM引擎,而且 ...
- Activiti 工作流简介
1.什么是工作流 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则自动进行传递文档.信息或任务的过程,从而实现某个预 ...
- activiti 工作流_springboot+activiti+angular 集成activiti工作流实现,源码分享
springboot+activiti+angular 这是spring boot框架集成activiti工作流实现,采用目前流行的restful api接口调用,前端使用angular js框架实现 ...
最新文章
- php cannot find libz,brew安装php70出现configure: error: Cannot find libz 错误解决方法
- 内存、数据结构之栈和堆的区别?
- subline类似less的html插件,29个常用 Sublime Text 插件推荐
- python random randint_python中random.randint和random.randrange的区别详解
- helm安装_如何利用 Helm 在 Kubernetes 上快速部署 Jenkins
- POJ3281:Dining——题解
- 总结全网最全的数据学习平台
- Android TelephonyManager获取LET信息及手机基本信息
- 每日新闻:国美与车势达成独家战略合作;腾讯Tsrc年度峰会破界召开;日本将允许高度自动驾驶车上路;“开源芯片”是芯片发展的新潮流...
- 作业---舞台剧 前端页面显示
- 2022年全国计算机四级考试精选模拟题及答案
- 南京大学比中科大计算机与科学专业,教育部直属:16所“软件工程”专业强校,浙大、南大、中科大上榜...
- CIE1931色度坐标及黑体轨迹
- 高级数据结构之赫夫曼树
- wpdec函数_BP神经网络滚动轴承故障诊断研究
- Oracle问题处理——DBCA无法识别当前已有数据库实例
- 清华大学计算机专业的cpu,我们研制成功进入世界500强的超级计算机
- 如何使用《背景音乐提取器》提取歌曲中的背景音乐
- 围棋口诀两百句(转)
- 我们不仅仅做软件 云工作台+ 聚合·共享