flowable ProcessEngine和ProcessEngineConfiguration

2024-03-20 23:18

本文主要是介绍flowable ProcessEngine和ProcessEngineConfiguration,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ProcessEngine是流程引擎,ProcessEngineConfiguration与前面四个引擎配置有些不同。

ProcessEngineConfiguration增加了邮件服务和httpClient的封装。

一、实例化

ProcessEngineConfiguration 提供了7个公共的静态方法用于实例化。

   public static ProcessEngineConfiguration createStandaloneProcessEngineConfiguration() {return new StandaloneProcessEngineConfiguration();}public static ProcessEngineConfiguration createStandaloneInMemProcessEngineConfiguration() {return new StandaloneInMemProcessEngineConfiguration();}

二、创建ProcessEngine

创建ProcessEngine的方法是在ProcessEngineConfiguration的子类 ProcessEngineConfigurationImpl中提供的。

@Overridepublic ProcessEngine buildProcessEngine() {init();ProcessEngineImpl processEngine = new ProcessEngineImpl(this);
...return processEngine;}

三、初始化服务

创建引擎过程调用init()方法时,初始化服务。

public void init() {
...
initServices();
...
}public void initServices() {initService(repositoryService);initService(runtimeService);initService(historyService);initService(identityService);initService(taskService);initService(formService);initService(managementService);initService(dynamicBpmnService);}public void initService(Object service) {if (service instanceof ServiceImpl) {((ServiceImpl) service).setCommandExecutor(commandExecutor);}}

这些服务定义在 ProcessEngineConfigurationImpl 中:

  protected RepositoryService repositoryService = new RepositoryServiceImpl();protected RuntimeService runtimeService = new RuntimeServiceImpl();protected HistoryService historyService = new HistoryServiceImpl(this);protected IdentityService identityService = new IdentityServiceImpl(this);protected TaskService taskService = new TaskServiceImpl(this);protected FormService formService = new FormServiceImpl();protected ManagementService managementService = new ManagementServiceImpl();protected DynamicBpmnService dynamicBpmnService = new DynamicBpmnServiceImpl(this);

初始化使AbstractEngineConfiguration的 CommandExecutor传递到这些服务的父类 ServiceImpl 中。

这些服务随着 processEngineConfigurationImpl实例传递给 processEngin实例。

这里写图片描述

这篇关于flowable ProcessEngine和ProcessEngineConfiguration的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/831070

相关文章

Flowable学习笔记

Flowable的实体基本概念: 1 流程定义(Process Definition)和流程实例(Process Instance)。 前者定义流程的模板(比如请假的审批规则),后者是每个运行时生成的流程实例(比如某次请假的审批申请)。所以前者使用Flowable的RepositoryService管理,后者使用RuntimeService管理。 2 事件(event)、任务(task)、顺

flowable 国产数据库并发性能优化

最近在生产环境有用户反馈系统流转速度较慢,这边用的是金仓数据库,这边查了数据库的慢sql日志,最后发现问题,以下是部分慢sql的执行时间截图 主要都是流转过程中更新执行表和历史变量表执行时间较长,于是查了表的默认索引,发现并没有针对以上涉及到的字段添加索引,导致并发下执行时间较长,于是根据生产环境慢sql日志整理如下更新索引: CREATE INDEX "act_ru_varia_exe

springboot、flowable 生成图片发布到Docker乱码问题

flowable自带的方法生成图片时,如设置字体为宋体,则本地测试没有问题,因为windows自带宋体字体库,但是如果发布到Docker,则会出现乱码问题,因为大部分Docker并不包含宋体字体库; 通过Java代码,在项目启动前向Docker添加字体库 我自己使用的方法是在spring boot启动前,通过Java代码设置Docker字体,具体步骤如下: 1. 复制字体库到spring

flowable 根据xml 字符串生成流程图

//获取xml         InputStream stream = repositoryService.getProcessModel(processDefinitionId);                String result = IOUtils.toString(stream, StandardCharsets.UTF_8);         // 创建 X

bladeX默认审批流flowable如何设置

下面就是流程图必须得写  ${taskUser}   你要配什么  就给审批流的service传什么

《Activiti/Flowable 深入BPM工作流》- 如何进行任务的归还?

《Activiti/Flowable  深入BPM工作流》- 如何进行任务的归还?     一. 问题     之前小编小结过任务的交接, 组任务的执行(参考:组任务的办理流程 ) ,但是如果候选人不想处理,想归还任务, 问题就出来了,那 该怎么任务的规划呢?   二. 详情      如果个人不想办理该组任务,可以归还组任务,归还后该用户不再是该任务的负责人 1.

《Activiti/Flowable  深入BPM工作流》-组任务的办理流程是什么?

《Activiti/Flowable  深入BPM工作流》-组任务的办理流程是什么?     一. 问题          组任务的办理流程是什么?     二. 详情 第一步:查询组任务 指定候选人,查询该候选人当前的待办任务。 候选人不能办理任务。 第二步:让候选人去拾取(claim)任务 该组任务的所有候选人都能拾取。 将候选人的组任务

《Activiti/Flowable  深入BPM工作流》-如何指派负责人?

《Activiti/Flowable  深入BPM工作流》-如何指派负责人?     一. 问题       如果任务某个节点的负责人临时有事不能处理,怎么办?     需求      流程定义中, 任务节点的assignee固定设置任务负责人,在流程定义时,将参与者固定设置在 .bpmn文件中, 如果临时任务负责人变更则需要修改流程定义,这是非常复杂

《Activiti/Flowable 深入BPM工作流》-任务在实际项目中的处理的优化

《Activiti/Flowable  深入BPM工作流》                                    ---任务在实际项目中的处理的优化     一.问题:        任务在实际项目中的处理的优化     二. 详情     具体的code如下:    /*** 如何进行任务处理2?* 真实的任务处理中,一定是有负责人的,负责

flowable源码解读——并行多实例节点任务是否是顺序生成

最近在项目开发中需要在多实例开始监听里修改一个全局的计数变量,不太确定并行多实例任务在底层引擎是顺序生成还是并行生成的,如果是顺序生成的则不影响,如果是并行生成 则修改一个全局的计数变量就会出现数据错误问题,查阅了flowable源码,做个记录。 查看并行多实例节点任务类 ParallelMultiInstanceBehavior,代码如下: protected int create