flowable EngineConfiguration的作用和继承关系(1)

EngineConfiguration 是flowable引擎的核心部件。
在 flowable 中,实现引擎配置的顶层类是 AbstractEngineConfiguration 这是一个抽象类。

一、作用

1、第一个作用是配置引擎使用的数据库信息。

protected String databaseType;
    protected String jdbcDriver = "org.h2.Driver";
    protected String jdbcUrl = "jdbc:h2:tcp://localhost/~/flowable";
    protected String jdbcUsername = "sa";
    protected String jdbcPassword = "";
    protected String dataSourceJndiName;
    protected int jdbcMaxActiveConnections;
    protected int jdbcMaxIdleConnections;
    protected int jdbcMaxCheckoutTime;
    protected int jdbcMaxWaitTime;
    protected boolean jdbcPingEnabled;
    protected String jdbcPingQuery;
    protected int jdbcPingConnectionNotUsedFor;
    protected int jdbcDefaultTransactionIsolationLevel;
    protected DataSource dataSource;
    protected DbSchemaManager dbSchemaManager;

2、第二个作用是提供 数据库表结构初始化状态的行为定义。

 public static final String DB_SCHEMA_UPDATE_FALSE = "false";

    public static final String DB_SCHEMA_UPDATE_CREATE = "create";

    public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";


    public static final String DB_SCHEMA_UPDATE_DROP_CREATE = "drop-create";


    public static final String DB_SCHEMA_UPDATE_TRUE = "true";

3、第三个作用是对mybatis进行封装,提供数据库操作入口

 protected DbSqlSessionFactory dbSqlSessionFactory;
    protected SqlSessionFactory sqlSessionFactory;
    protected TransactionFactory transactionFactory;
    protected TransactionContextFactory transactionContextFactory;

    protected Set<Class<?>> customMybatisMappers;
    protected Set<String> customMybatisXMLMappers;

    protected Set<String> dependentEngineMyBatisXmlMappers;
    protected List<CustomMybatisTypeAliasConfig> dependentEngineMybatisTypeAliasConfigs;
    protected List<CustomMyBatisTypeHandlerConfig> dependentEngineMybatisTypeHandlerConfigs;

    protected List<SessionFactory> customSessionFactories;
    protected Map<Class<?>, SessionFactory> sessionFactories;

    protected boolean enableEventDispatcher = true;
    protected FlowableEventDispatcher eventDispatcher;
    protected List<FlowableEventListener> eventListeners;
    protected Map<String, List<FlowableEventListener>> typedEventListeners;
    protected List<EventDispatchAction> additionalEventDispatchActions;

    protected boolean transactionsExternallyManaged;

4、第四个作用 是提供sql执行上下文环境和执行队列

 protected CommandExecutor commandExecutor;
    protected Collection<? extends CommandInterceptor> defaultCommandInterceptors;
    protected CommandConfig defaultCommandConfig;
    protected CommandConfig schemaCommandConfig;
    protected CommandContextFactory commandContextFactory;
    protected CommandInterceptor commandInvoker;

    protected List<CommandInterceptor> customPreCommandInterceptors;
    protected List<CommandInterceptor> customPostCommandInterceptors;
    protected List<CommandInterceptor> commandInterceptors;

5、第五个作用是完成引擎内部服务的配置和初始化,并构建引擎实例

通过调用相应的方法,获得每个引擎。

formEngineConfiguration.buildFormEngine();
idmEngineConfiguration.buildIdmEngine();
dmnEngineConfiguration.buildDmnEngine();
contentEngineConfiguration.buildContentEngine();
processEngineConfiguration.buildProcessEngine();

当然,在调用这个方法之前,需要进行设定适当的参数。

二、继承关系

这里写图片描述

这里写图片描述

三、分类

根据用途分为五类:

1、内容引擎配置

ContentEngineConfiguration

2、流程引擎配置

ProcessEngineConfiguration

3、身份引擎配置

IdmEngineConfiguration

4、决策引擎配置

DmnEngineConfiguration

5、表单引擎配置

FormEngineConfiguration

这里写图片描述

除了流程引擎配置外,其他的引擎配置类都提供了两种不同的配置,包括支持Spring的引擎配置类和独立的引擎配置类。

独立的引擎配置类又被扩展支持内存类型的引擎配置类。

这里写图片描述

这些继承了 AbstractEngineConfig 类的引擎配置类,定制不同的数据库使用模式(单租户、多租户、单数据库、多数据库)、mybatis配置文件、事务的处理、资源的获取等。

Flowable Engine是一个开源的工作流引擎,用于实现和管理各种流程,包括工作流程、业务流程、决策流程等。Flowable Engine基于BPMN 2.0标准,提供了一个简单而强大的引擎来管理和执行复杂的工作流程。 Flowable Engine具有以下特点和功能。 首先,Flowable Engine具有灵活性和可扩展性。它使用模块化的架构,可以根据实际需求轻松地扩展和定制引擎。用户可以根据自己的需求添加新的功能或修改现有功能。 其次,Flowable Engine提供了丰富的工作流管理功能。它能够处理并发、分支、合并、循环等复杂的流程结构,并提供了任务分配、任务跟踪、任务调度等功能。用户可以轻松地定义和管理工作流程,提高工作效率和管理水平。 此外,Flowable Engine支持各种型的任务和事件。它可以处理用户任务、服务任务、消息任务等各种任务型,并且能够响应时间、消息等各种事件。这使得Flowable Engine非常适合处理复杂的业务流程和决策流程。 最后,Flowable Engine具有强大的可视化工具和API,使用户可以方便地创建、部署、监控和管理工作流程。用户可以通过可视化工具进行流程建模和设计,也可以使用API与引擎进行交互。 总之,Flowable Engine是一个功能强大、灵活可扩展的开源工作流引擎,可以帮助用户高效地管理和执行各种复杂的流程。它具有丰富的功能和易于使用的界面,适用于各种应用场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值