flowable IdmEngine和IdmEngineConfiguration

Posted teamlet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flowable IdmEngine和IdmEngineConfiguration相关的知识,希望对你有一定的参考价值。

IdmEngineConfiguration 继承了 AbstractEngineConfiguration。

一、创建EngineConfiguration实例

IdmEngineConfiguration 提供7个公共的静态方法用于创建自身的实例。
其中用于Spring环境下的有5个,用于Standalone环境下的有2个。
Standalone环境下的创建代码如下:

    public static IdmEngineConfiguration createStandaloneIdmEngineConfiguration() 
        return new StandaloneIdmEngineConfiguration();
    

    public static IdmEngineConfiguration createStandaloneInMemIdmEngineConfiguration() 
        return new StandaloneInMemIdmEngineConfiguration();
    

二、创建 IdmEngine

IdmEngineConfiguration提供创建IdmEngine的buildIdmEngine()方法:

 public IdmEngine buildIdmEngine() 
        init();
        return new IdmEngineImpl(this);
    

三、初始化服务

在init()方法中,初始化引擎中用到的服务。

protected void init() 
...
initServices();
...


    protected void initServices() 
        initService(idmIdentityService);
        initService(idmManagementService);
    

    protected void initService(Object service) 
        if (service instanceof ServiceImpl) 
            ((ServiceImpl) service).setCommandExecutor(commandExecutor);
        
    

这些服务定义在IdmEngineConfiguration中:

protected IdmIdentityService idmIdentityService = new IdmIdentityServiceImpl();
    protected IdmManagementService idmManagementService = new IdmManagementServiceImpl();

这些服务经过init()初始化后,通过IdmEngineConfiguration传入IdmEngine实例。

init()初始化时,将AbstractEngineConfiguration的属性CommandExecutor 传递给这些服务。

这些服务有一个公共的父类 ServiceImpl

ServiceImpl 包含一个CommandExecutor类型的属性。
这些服务通过代理模式,封装CommandExecutor完成服务中方法的具体行为的实现。

以上是关于flowable IdmEngine和IdmEngineConfiguration的主要内容,如果未能解决你的问题,请参考以下文章

Flowable基本使用介绍和Flowable数据库表解释

Flowable开源版和Flowable商业版有什么区别?

工作流Flowable和Camunda的学习之路

工作流Flowable和Camunda的学习之路

Flowable 实战

Flowable入门系列文章80 - Flowable Designer部署功能