德玛西亚之WorkFlow(五)流程引擎创建
在之前了解了 Activiti 的配置和数据库各个表的功能含义。现在我们需要根据这些配置生成工作流引擎。Activiti
提供了多种创建流程引擎的方式供研发人员选择,可以通过 ProcessEngineConfiguration 的buildProcessEngine 方法,也可以使用 ProcessEngines 的 init 方法来创建 ProcessEngine 实例,可以根据项目的不同需要来选择不同的创建方式。
1 流程引擎的创建
流程引擎的创建在第三篇文章中已做过介绍,这里就不在做重复复制了。
2 流程引擎的初始化和销毁
除了 ProcessEngineConfiguration 的 buildProcessEngine 方法外, ProcessEngines 类提供了创建 ProcessEngineConfiguration 实例的方法。 ProcessEngines 是一个创建流程引擎与关闭流程引擎的工具类,所有创建(包括其他方式创建)的 ProcessEngine 实例均被注册到 ProcessEngines 中。这里所说的注册,实际上是在 ProcessEngines 类中维护一个 Map 对象,该对象的 key 为 ProcessEngine 实例的名称, value 为 ProcessEngine 的实例,当向 ProcessEngines 注册 ProcessEngine 实例时,实际上是调用 Map 的 put 方法,将该实例缓存到 Map 中。
2.1 init 方法与 getDefaultProcessEngine 方法
看一下 getDefaultProcessEngine 的具体实现代码就会明白
public static ProcessEngine getDefaultProcessEngine() {
return getProcessEngine(NAME_DEFAULT);
}
public static ProcessEngine getProcessEngine(String processEngineName) {
if (!isInitialized()) {