flowable ContentEngine和ContentEngineConfiguration的关系
Posted teamlet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的关系的主要内容,如果未能解决你的问题,请参考以下文章