Activiti流程引擎架构概述

这篇博客详细介绍了Activiti流程引擎的架构,包括ProcessEngineConfiguration类在EngineServices接口中的角色,以及ProcessEngineImpl、ProcessEngines、ProcessEngineConfigurationImpl等组件的功能。文章还提到了SpringProcessEngineConfiguration和StandaloneProcessEngineConfiguration等不同场景下的配置类,以及它们在多数据库、JTA支持和内存测试环境中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Activiti框架提供的流程引擎配置类ProcessEngineConfiguration的类图如下:

下面的图是流程引擎的架构图:

由上图我们可以很清楚地从全局角度了解ProcessEngineConfiguration类:

1)EngineServices:该接口中定义了获取各种服务类实例对象的方法。

2)ProcessEngine:继承EngineServices接口,并增加了对流程引擎名称的获取以及关闭流程引擎的支持。

3)ProcessEngineImpl: 是引擎默认的实现类,对ProcessEngine接口中定义的方法进行实现,对外提供服务。实际上,这些对外提供的服务是由 ProcessEngineConfigurationImpl 构造的,ProcessEngineImpl 调用 ProcessEngineConfigurationImpl 的方法获得服务。

4)ProcessEngines:该类负责管理所有的流程引擎ProcessEngine集合,并负责流程引擎实例对象的注册、获取、注销等操作。

5)ProcessEngineConfiguration:该抽象类实现EngineServices接口,提供了一系列创建流程引擎配置类ProcessEngineConfiguration实例对象的方法。

6)ProcessEngineConfigurationImpl:该抽象类继承ProcessEngineConfiguration,负责创建一系列服务类实例对象、流程引擎实例对象以及ProcessEngineImpl类实例对象。该类可以通过流程配置文件交给Spring容器管理或者使用编程方式动态构建。

7)SpringProcessEngineConfiguration:主要用于整合Spring框架时使用,提供了几个重要功能:创建流程引擎实例对象,流程引擎启动之后自动部署配置的流程文档(需要设置),设置流程引擎连接的数据源、事务管理器等。

8)StandaloneProcessEngineConfiguration:标准的流程引擎配置类。

9)MultiSchemaMultiTenantProcessEngineConfiguration:“多数据库多租户”流程引擎配置类,Activiti通过此类为开发人员提供了自动路由机制,这样当流程引擎需要连接多个数据库进行操作时,客户端无须关心引擎到底连接的是哪一个数据库,该类通过路由规则自动选择需要操作的数据库,数据库的操作对客户端来说是透明的,客户端无须关心其内部路由实现机制。

10)JtaProcessEngineConfiguration:顾名思义,通过类名也知道该类支持JTA。

11)StandaloneInMemProcessEngineConfiguration:该类通常可以在开发环境中自测使用,默认采用H2数据库存储数据。

12)EngineServices提供的服务类如下:

service接口作用
RepositoryService流程仓库service,用于管理流程仓库,如部署、删除、读取流程资源
IdentityService身份service,可以管理和查询用户、组之间的关系
RuntimeService运行时service,处理所有正在运行状态的流程实例、任务等
TaskService任务service,用于管理、查询任务,如签收、办理、指派等
FormSerivice表单service,用于读取和流程、任务相关的表单数据
HistoryService历史service,可以查询所有历史数据,如流程实例、任务、活动、附件等
ManagementService引擎管理service,和具体业务无关,主要用于查询引擎配置、数据库、作业等

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值