Activiti入门到精通(一)

Activiti是一项新的基于Apache许可的开源BPM平台,从基础开始构建,意在提供支持新的BPMN 2.0标准,供人们简单方便使用。它其实可以简称为工作流,也就是一个固定的流程模板,它支持对象管理组、定义流程、控制流。广泛用于开发中,今天就简单讲一下它的核心配置、常用服务、支持的数据库以及运行机制等等。
1.Activiti核心配置
1.1JDK版本1.6以上
这个就不多说了,jdk的版本不能低于1.6,否则没用。
1.2数据库连接配置
//申明数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
//连接数据库的四个基本参数
spring.datasource.url=jdbc:mysql://localhost:3306/activiti_base?useUnicode=true&characterEncoding=utf-8&useSSL=false& serverTimezone=UTC&nullCatalogMeansCurrent=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
jdbcMaxActiveConnections: 连接池中处于被使用状态的连接的最大值。默认为
jdbcMaxIdleConnections: 连接池中处于空闲状态的连接的最大值。
jdbcMaxCheckoutTime: 连接被取出使用的最长时间,超过时间会被强制回收。 默认为20000(20秒)。
jdbcMaxWaitTime: 这是一个底层配置,让连接池可以在长时间无法获得连接时, 打印一条日志,并重新尝试获取一个连接。(避免因为错误配置导致沉默的操作失败)。 默认为20000(20秒)。
上述配置中有可能会有变化,现在mysql版本6.0以上都是使用
spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/activiti_base?useUnicode=true&characterEncoding=utf-8&useSSL=false& serverTimezone=UTC&nullCatalogMeansCurrent=true
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
上面那种就过时了,取决于你的mysql版本
1.3流程引擎常用参数配置
//检查数据库表是否存在 true/需要创建 false/不需要创建
spring.activiti.database-schema-update=true
//是否需要扫描resource下存在processes文件夹
spring.activiti.check-process-definitions=false
//流程历史记录 full:全部记录
spring.activiti.history-level=full
在这里插入图片描述 1.4流程引擎对象ProcessEnginee(核心)
ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
System.out.println(“processEngine:”+processEngine);
ProcessEnginee是流程的核心,有它才可以调用所需要的服务,控制流程。在Activiti6之前都是在activiti.cfg.xm里面进行配置,但在之后都是导入依赖自动配置。勉去了很多繁琐的步骤。
2.常用服务
流程中常用到的七大接口服务
RepositoryService:提供一系列管理流程部署和流程定义的API。

	RuntimeService:在流程运行时对流程实例进行管理与控制。
	
	TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务等
	。
	IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户及它们之间的关系。
	ManagementService:提供对流程引擎进行管理和维护的服务。
	
	HistoryService:对流程的历史数据进行操作,包括查询、删除这些历史数据
	
	FormService:表单服务。

3.支持的数据库
在这里插入图片描述开发常用Mysql数据库,其自动建表有

Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_: ‘RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACT_RU_
: ‘RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_: ‘ID’表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_
: ‘HI’表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
ACT_GE_*: 通用数据, 用于不同场景下,如存放资源文件。

表结构操作:
3.3.1:资源库流程规则表
act_re_deployment 部署信息表
act_re_model 流程设计模型部署表
act_re_procdef 流程定义数据表
3.3.2:运行时数据库表
act_ru_execution 运行时流程执行实例表
act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息
act_ru_task 运行时任务节点表
act_ru_variable 运行时流程变量数据表
3.3.3:历史数据库表
act_hi_actinst 历史节点表
act_hi_attachment 历史附件表
act_ih_comment 历史意见表
act_hi_identitylink 历史流程人员表
act_hi_detail 历史详情表,提供历史变量的查询
act_hi_procinst 历史流程实例表
act_hi_taskinst 历史任务实例表
act_hi_varinst 历史变量表
3.3.4:组织机构表
act_id_group 用户组信息表
act_id_info 用户扩展信息表
act_id_membership 用户与用户组对应信息表
act_id_user 用户信息表
这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足
3.3.5:通用数据表
act_ge_bytearray 二进制数据表
act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,

4.运行机制
我们可以理解将Activiti当做BPMN的实现,它的一个流程是从建立模型、部署流程、流程定义、开启流程、流程结束等几个阶段。每一个阶段都是对应不用的服务,通常是通过核心对象调用运行时服务对流程进行管理和控制,用任务服务来表示流程的结束。基于各种服务对流程进行管理控制按照阶段执行所需服务达到流程所需效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值