Activiti 工作流入门

基础知识

工作流:
可以认为是一系列的规范流程,让业务按照拟定的规则处理和运转,本质上是一系列逻辑相关的活动的集合。例如某校学生申请奖学金这一业务,必须按照“学生申请→辅导员审批→学生处审批→教务处审批”这一流程运转,也就是“学生申请”、“辅导员审批”、“学生处审批”以及“教务处审批”这些活动的集合。最原始的时候,在系统中完成这样的功能,需要通过一系列的独立活动页面以及修改数据库中的一些标记状态来实现任务的流转的,这样的做法在开发和维护上都是十分困难的,新增任务结点,网关判断,添加处理人员都十分繁琐,之后就有了工作流引擎。
工作流引擎:
实现流程,让任务能够按拟定的流程自动的驱动下去,不再需要我们实现流程的驱动,记录流程的流转情况等等,提供流程生命周期的管理功能,Activiti就是一种工作流引擎。
工作流平台:
如果每一个系统(项目)都有工作流,就会产生很多相同的代码,为了更好的管理工作流,为了让工作流与项目解耦,有的时候把工作流剥离出来做成微服务的形式,搭建一套完整的工作流平台,对外提供接口,让各个业务系统更专注于自己的核心业务。

Activiti 6.0 架包

查看Activiti引擎的架包如图所示,可以发现其主要包含两个部分:db以及engine。
这里写图片描述
Activiti对流程的定义,创建,维护以及查询的实现都是是通过对表的操作完成的,Activiti有一套自己的表,都是以“ACT”打头命名的,记录了流程定义等相关信息(”ACT_RE*”)、流程驱动过程中的信息(“ACT_RU*”)、流程历史相关信息(“ACT_HI*”)以及一些通用数据(“ACT_GE*”)等。如下所示:
这里写图片描述
Activiti的ORM是通过Mybatis实现的,所以回到之前提到的db部分,这部分的内容主要包含对以上提到的28张表的创建,及删除语句。表不需要我们自己创建,初始化的时候可以配置自动创建,支持db2,h2,hsql,mysql,oracle,postgres等数据库。举个Spring boot中配置的例子:

@Configuration
@EnableConfigurationProperties(ActivitiProperties.class)
public class ProcessEngineAutoConfiguration extends DataSourceProcessEngineAutoConfiguration {
   
    @Configuration
    @EnableConfigurationProperties(ActivitiProperties.class)
    public static class ProcessEngineConfiguration extends DataSourceProcessEngineConfiguration {
   

    }
}

其中ActivitiProperties.class中默认的策略如下:

//表不存在就自动创建表
private String databaseSchemaUpdate = "true";

还可以配置为“false”(不自动创建表),“drop-create”(先删除再创建表)等,此处不详细介绍Spring boot项目中的配

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值