1.何为配置器
不同的配置风格的配置文件有不同的配置风格,比如StandaLongProcessEngineConfiguration类,但是在XML流程引擎配置类有三个缺点,
一:不灵活,所有的属性信息都需要在xml中配置
二:不能满足动态属性需求,如果开发人员打算用编程方式构造流程引擎类的实例对象,那么这种根本不可能。
三:不能检查必要的属性值是否被初始化,比如检查开发人员检查数据源的信息。
所以在Activit5.13中添加了配置器,进而通过编程的方式动态修改或刷新流程引擎配置类实例对象中的属性值,所有配置器均可实现ProcessEngineConfigurator接口
一般情况下,我们通过activit-context.xml配置器构造ProcessEngineConfiguration,然后构造ProcessEngine类,最后获取processEngine
首先看下配置器的内部机制:ProcessEngineConfigurationImpl 主要三个:1/initConfigurators
2/ConfiguratorsBeforeInit 3/ConfiguratorsAfterInit
自定义配置器:首先将<bean id='', Class='....ProcessEngineConfiguration' <property name ='dataBaseSchemaUpdate' value='true'>>将这个默认生成的配置器去掉
1、
创建配置器主要实现AbstractProcessEngineConfigurator,同时重写两个方法,1:beforeInit 2:configure将这个类配置到Activiti-context.xml,以Bean形式表示,最后将id通过ref标签到ProcessEngineConfiguration的Bean中。最后可以将这个自定义配置器进行验证了。
2、
也可以通过ServiceLoader方式配置配置器,通过指定的文件配置配置器
最后再说一下,流程引擎类的架构思想,
EngineServices提供了一系列的服务类,该接口定义了获取各个服务的实例方法。
ProcessEngine继承了EngineService接口,并增加了对流程引擎名称的获取,以及关闭流程引擎的支持。
ProcessEngineImpl
ProcessEngines:管理所有的流程引擎的ProcessEngine集合,并负责流程引擎实例对象的注册,获取,销售等操作
ProcessEngineConfiguration:该抽象类实现了EngineServices接口,提供了一系列创建流程引擎配置类ProcessEngineConfiguration实例方法
ProcessEngineConfigurationImpl集成了ProcessEngineCOnfiguration,负责创建一系列服务实例对象,流程引擎实例对象,以及ProcessEngine实例对象,该类可以通过流程配置文件交给Spring管理,或者编程动态构造。
SpringProcessEngineConfiguration
StandaLongProcessEngineConfiguration
MultiSchemaMultiTenantProcessEngineConfiguration
JtaProcessEngineConfiguration
StandlLongInMemProcessEngineConfiguration
然后说一下,EngineServices定义的服务类
RepositoryService
RuntimeService
TaskService
IdentityService
HistoryService
FormService
ManagementService
转载于:https://my.oschina.net/mdxlcj/blog/1341360