flowable ContentEngine和ContentEngineConfiguration的关系
一、CommandExecutor
ContentEngineConfiguration继承自 AbstractEngineConfiguration。
在 AbstractEngineConfiguration 中包含一个CommandExecutor 属性。
protected CommandExecutor commandExecutor;
二、ContentManagementService和ContentService
ContentEngineConfiguration中包含两个属性:
protected ContentManagementService contentManagementService = new ContentManagementServiceImpl();
protected ContentService contentService = new ContentServiceImpl();
三、创建ContentEngine
ContentEngine是通过调用ContentEngineConfiguration实例的buildContentEngine()完成创建的。
public ContentEngine buildContentEngine() {
init();
return new ContentEngineImpl(this);
}
1、传递CommandExecutor
在调用ContentEngineConfiguration的buildContentEngine()方法时,在 AbstractEngineConfiguration 中包含的CommandExecutor 属性被赋值给ServiceImpl。代码如下:
protected void initServices() {
initService(contentManagementService);
initService(contentService);
}
protected void initService(Object service) {
if (service instanceof ServiceImpl) {
((ServiceImpl) service).setCommandExecutor(commandExecutor);
}
}
ServiceImpl是ContentService和ContentManagementService的父类,包含一个CommandExecutor 属性。(见下图)
至此,ContentEngineConfiguration 初始化了ContentService和ContentManagementService,并把父类中的CommandExecutor传递给了这两个类的实例。
2、构建ContentEngine
ContentEngineConfiguration被当作参数传递给ContentEngineImpl的构造方法。
public ContentEngine buildContentEngine() {
init();
return new ContentEngineImpl(this);
}
ContentEngineImpl通过ContentEngineConfiguration得到ConentService和ContentManagementService,并对外提供。
public ContentEngineImpl(ContentEngineConfiguration engineConfiguration) {
this.engineConfiguration = engineConfiguration;
this.name = engineConfiguration.getEngineName();
this.managementService = engineConfiguration.getContentManagementService();
this.contentService = engineConfiguration.getContentService();
...
}
ContentEngine 提供的服务最终的执行者是ContentService和ContentManagementService的父类 ServiceImpl;
而 ServiceImpl的执行器是由 AbstractEngineConfiguration提供的。
flowable ContentEngine和ContentEngineConfiguration的关系的更多相关文章
- Android 异步框架 RxJava2
观察者模式的概念 RxJava是android的异步框架,官方介绍是可观测的序列,组成异步基于事件程序的库.特点是观察者模式,基于事件流的链式调用,随着异步操作调度过程复杂的情况下,程序逻辑也变得越来 ...
- flowable EngineConfiguration的作用和继承关系(1)
EngineConfiguration 是flowable引擎的核心部件. 在 flowable 中,实现引擎配置的顶层类是 AbstractEngineConfiguration 这是一个抽象类. ...
- flowable 五个引擎和组成引擎的服务
一.flowable的五个引擎 flowable包含五个引擎,分别是: 1.内容引擎 ContentEngine 2.身份识别引擎 IdmEngine 3.表单引擎 FormEngine 4.决策引擎 ...
- flowable EngineConfiguration的实现分析(2)
EngineConfiguration的实现类是一个抽象类:AbstractEngineConfiguration 一.引擎配置的分类 继承 AbsractEngineConfiguration的子类 ...
- flowable表简要说明
1. Flowable数据库表命名规则 ACT_RE_* ’RE’表示repository(存储).RepositoryService接口操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资 ...
- 工作流选型专项,Camunda or flowable or?
1. 名词解释 1.1. BPM Business Process Management,业务流程管理,“通过建模.自动化.管理和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”. 1.2 ...
- Flowable—多实例任务:会签
多实例任务 会签 什么是会签? 举个例子:比如我们有一个任务 可能需要多人审批,审批通过的条件可能比较多样,比如五个人审批.3个人审批过了就算过了,再或者有一个人权限比较高,拥有一票否决权. 即是其余 ...
- Flowable学习入门
一.Flowable简介 1.Flowable是什么 Flowable是一个使用Java编写的轻量级业务流程引擎.Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标 ...
- 【流程】Flowable流程定义总结
背景 近几年,互联网企业从消费互联网向产业互联网转型.在消费互联网时期,企业面对的时C端消费者,而产业互联网面对的是B端用户. 产业互联网涉及方方面面,企业信息化的建设就是B端用户的业务之一,在企业就 ...
随机推荐
- pxe无人值守自动安装
rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmyum listyum upda ...
- NSURLSession 的学习资料
一个nsurlsession的一些学习资料 http://www.cocoachina.com/ios/20161018/17785.html
- python的socket的tcp协议编程
服务端代码如下: # _*_ coding:utf-8 _*_import socketimport datetimeHOST='0.0.0.0'PORT=3434 s=socket.socket(s ...
- LeetCode——Range Sum Query - Immutable
Question Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), ...
- 第七篇:Spark SQL 源码分析之Physical Plan 到 RDD的具体实现
/** Spark SQL源码分析系列文章*/ 接上一篇文章Spark SQL Catalyst源码分析之Physical Plan,本文将介绍Physical Plan的toRDD的具体实现细节: ...
- c# 调用webapi 传参 特殊字符的问题
最近在做对接数据接口,遇到一些问题,在C#后台写请求webapi的接口,但是传递过程中参数如果有特殊字符,传入过去之后又问题. 需要转换一下,通过System.Web.HttpUtility.UrlE ...
- 【semantic segmentation】Pyramid Scene Parsing Network(转)
论文地址:https://arxiv.org/pdf/1612.01105.pdf源码地址:https://github.com/hszhao/PSPNet 来自:Semantic Segmentat ...
- 【cs231n】神经网络笔记笔记2
) # 对数据进行零中心化(重要) cov = np.dot(X.T, X) / X.shape[0] # 得到数据的协方差矩阵 数据协方差矩阵的第(i, j)个元素是数据第i个和第j个维度的协方差. ...
- JAVA 单向链表
package com.session.link; /** * 单向链表 */public class LinkedList<T> { private Node head;//指向链表头节 ...
- [小问题笔记(一)] js关闭页面window.close() 无效,不弹提示直接关闭
window.close(); 单独写这句,各个浏览器效果都不一样.比如IE(不是所有版本)会弹提示: 点确定之后才会关闭.而有些浏览器压根就没反应. 需要让它不弹提示,直接关闭,在window.cl ...