一、Activit7简介
Activiti7只是对BPMN2.0规范实现的一个java框架而已,他是一个工作流程控制和管理框架,就是来处理系统中的业务流程的,对整个业务系统起到辅助和支持作用。一般有两种存在方式,一种是和业务代码耦合在一块,另一种是依靠activiti7做成单独的微服务,实现功能的复用,成为真正的工作流“引擎”。
二、为什么要使用它?
工作流引擎本身的目的就是为了辅助业务系统,处理复杂的业务流程,实现流程自动化处理,减轻开发人员的负担,提高企业运作效率,为企业赋能。对于开发人员来说,无论多么复杂的业务流程,只要是用BPMN2.0规范画的业务流程图,用activiti7都可以轻松应对,甚至有时当业务流程发生改变后,都不需要改原来的代码。这一切都源于BPMN2.0规范和acitivit7代码的高度封装屏蔽了底层的实现。
三、SpringBoot集成Activiti7
1.添加依赖
本次使用的是排除security框架示例
<!-- activiti start -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M6</version>
</dependency>
<!-- activiti end -->
<!-- activiti不添加会报Bean method 'inMemoryUserDetailsManager' in 'UserDetailsServiceAutoConfiguration' not loaded...错 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2.配置文件
配置工作流相关信息,如下:
spring:
# 工作流
activiti:
# 数据库的更新策略
database-schema-update: true # true:会对数据库中所有表进行更新操作。如果表不存在,则自动创建
# 检查历史表是否存在
db-history-used: true # true:开启历史表
# 记录历史等级
history-level: full # full:除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等
# 自动检查、部署流程定义文件
check-process-definitions: false # true:默认校验resources下的processes文件夹里的流程文件
# 启动就激活AsyncExecutor
async-executor-activate: true # true:开启异步
# 流程文件默认存放路径前缀
process-definition-location-prefix: classpath*:/processes/
# 流程文件默认存放路径后缀
process-definition-location-suffixes:
- "**.bpmn"
- "**.bpmn20.xml"
3.启动类排除
需要排除security配置项,否则启动会报错!
@SpringBootApplication(
exclude = {
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class
}
)
public class TestProjectApplication {
public static void main(String[] args) {
SpringApplication.run(TestProjectApplication.class, args);
}
}
4.创建工作流文件目录
在resources目录下创建processes目录,用于存放部署文件(xml、png等)
5.启动项目完成
出现如图则启动成功,并在数据库中发现自动创建了25张activiti生成的数据表。
以上就是springboot集成activiti7的初始步骤成功。