原创不易,注明出处。
简单介绍
activiti基于apcahe开源协议的业务流程管理(BPM)引擎,引擎的核心目标是采用人工和系统调用组成的流程定义,并按一定顺序执行这些流程定义。activiti是一个轻量级的框架,但它可以在任何规模下工作,可执行几十到几千甚至百万个流程。
activiti的开源地址:https://github.com/Activiti/Activiti ,各位小伙伴们可以前往下载到本地学习。activiti可以通过画流程图来定义,符合BPMN2.0标准(什么是BPMN?百度百科),非常直观,自动生成XML文件。
好了,我们说了那么多,我们开始进入正题。
我们知道spring boot 是约定优于配置,大家应该很明白这是什么意思吧。activiti在spring boot 下配置是相当简单的,开箱即用,使用数据库是因为流程可以在几秒甚至跨越到几年后执行。
<properties>
<activiti.version>5.17.0</activiti.version>
<mysql.version>5.1.45</mysql.version>
<lombok.version>1.16.20</lombok.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
创建src/main/resources/processes文件夹,用来保存流程定义,程序会自动部署到activiti引擎中。
我们来宣言一个简单的流程,使用idea来生成流程定义,
画一个简单的流程图。
创建一个简单的单元测试
自动生成24张表。
整合activiti explorer
配置数据源:
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.database=default
spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/springboot_activiti?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
现在就可以使用activiti了。