简洁明了的介绍下不用太多篇幅
activiti介绍
Activiti是一个工作流引擎,activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(BPMN2.0)进行定义,业务系统按照预先定义的流程进行执行,实现了业务系统的业务流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
BPM介绍
-
Bpm(Business Process Management),业务流程管理,是一种理念,以持续的提高组织业务绩效为目的系统化方法,常见商业管理教育如EMBA、MBA等均将BPM包含在内。
-
bpmn(Business Process Model and Notation),业务流程模型和符号。和bpm是两个不同的概念。Activiti使用bmpn标准进行流程建模。是由BPMI(Business Process Management Initiative)开发的一套标准的业务流程建模符号,使用BPMN提供的符号可以创建业务流程。
springboot整合activiti
其实就是要用activiti里面的逻辑完成实际中的业务问题,activiti定位是辅助业务系统的。
项目中activiti包含(后端的流程+自带的图形设计器(如果开放用户不建议使用))
推荐搭配:activiti工作流框架+bpmn-js或VUE版前端 github地址 开发测试的activiti插件 :
- eclipse->help->install new software->name(Activiti BPMN designer),Location(http://www.activiti.org/designer/update) 安装即可
- idea->file->setting->plugins->actibpm(编码有问题)
下图是bpmn-js
是不是很友好
开始整合(概要)
- pom引用
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.22.0</version>
</dependency>
- application.yml文件配置
# activiti default configuration
#在activiti的默认配置中,process-definition-location-prefix 是指定activiti流程描述文件的前缀(即路径),
#启动时,activiti就会去寻找此路径下的流程描述文件,并且自动部署;suffix 是一个String数组,表示描述文件的默 认后缀名,默认以上两种。
activiti:
database-schema-update: true #是否每次都更新数据库
# 自动部署验证设置:true-开启(默认)、false-关闭
check-process-definitions: true # activti是否自动部署
process-definition-location-prefix: classpath:/processes/
#process-definition-location-suffixes: .bpmn
history-level: full
#db-history-used: true
db-identity-used: false
- 创建activiti提供的各种服务 ActivitiConfig
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.activiti.spring.boot.AbstractProcessEngineAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
@Configuration
public class ActitytiSourceConfig extends AbstractProcessEngineAutoConfiguration {
@Bean(name = "MyDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource MyDataSource(){
return DataSourceBuilder.create().build();
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(MyDataSource());
}
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration() {
SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration();
//配置数据库
configuration.setDataSource(MyDataSource());
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
configuration.setJobExecutorActivate(true);
configuration.setTransactionManager(transactionManager());
return configuration;
}
}
- 启动 成功的标志是数据库会自动生成ACT_的表
- 理解数据库表名字(翻译于官方文档)
- Activiti 的表都以 ACT_ 开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的 API 对应。
- ACTRE*: 'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
- ACTRU*: 'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 * * Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
- ACTID*: 'ID'表示 identity。 这些表包含身份信息,比如用户,组等等。
- ACTHI*: 'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
- ACTGE*: general 数据, 用于不同场景下。
至此整合完毕。
简单说一下activiti项目中的使用流程(斜体是根据自己业务的)
- 编写bpmn的流程文件(了解bpmn的标准)
- 通过activiti引擎发布流程
- 自己业务准备逻辑
- 启动流程
- 开始任务
- 流程流转
- 结束任务
- 自己业务结束逻辑
总结:使用流程大概是这样的,其余部分就是activiti的API使用。后续会更新……