Activiti6简介
Activiti 是由 jBPM 的创建者 Tom Baeyens 离开 JBoss 之后建立的项目,构建在开发 jBPM 版本 1 到 4 时积累的多年经验的基础之上,旨在创建下一代的 BPM 解决方案,所以它是JBPM4的一个延申,因此第一个版本就是5.0
Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度,所能能够很好的和spring整合
Activiti官网:https://www.activiti.org/index.html
很多业务不用Activiti也能实现为什么要用Activiti?
使用activiti的好处:
1、减少对数据的访问,运行时中间表指挥存储它运行时的数据
2、提高系统的柔性,适应业务流程的变化
3、如果流程有变更,不适用工作流可能需要大量修改代码,降低系统开发和维护成本
4、开发系统时引入工作流的目的是为了分离业务逻辑和过程逻辑,让业务开发人员专注于核心的业务开发,过程逻辑的处理交给工作流引擎,且过程逻辑的变化对于核心业务逻辑不影响或者影响很少。
这是Activiti的核心内容,流程基本就靠着几大服务
7大接口
RepositoryService:提供一系列管理流程部署和流程定义的API。
RuntimeService:在流程运行时对流程实例进行管理与控制。
TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务等。
IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户及它们之间的关系。
ManagementService:提供对流程引擎进行管理和维护的服务。
HistoryService:对流程的历史数据进行操作,包括查询、删除这些历史数据。
FormService:表单服务。
入门案例
IDEA的插件下载比较方便,直接在Plugins里面搜索actiBPM下载就能用了,但是这个插件很早就停止更新了,有部分功能不是很便捷,所以推荐下载exlipce的插件
安装网上的博客很多,大家就直接去问度娘了
首先导入pom依赖,还有我数据库需要用到的mysql
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
这是Activiti的配置文件,主要就是processEngineConfiguration,我们就是通过这个类来在数据库中创建表的
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration" id="processEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti"></property>
<property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUsername" value="root"></property>
<property name="jdbcPassword" value="123"></property>
<!-- 数据库表更新策略 -->
<property name="databaseSchemaUpdate" value="true"></property>