Activiti流程引擎对象及配置原理解析

2020-03-09 12:00:29于丽

四、获取流程引擎配置对象

4.1 读取默认名称的配置文件来创建配置对象

ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault() 这个方法会在classpath下读取名为activiti.cfg.xml的配置文件,并获取名称为processEngineConfiguration的bean返回。

所以如果在resources目录下给定一个activiti.cfg.xml配置文件,在其中创建一个名为processEngineConfiguration的bean,在程序中调用这个方法就可以得到流程引擎配置对象。

  /**
   * 用ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault()
   * 创建流程引擎配置对象
   */
  @Test
  public void test1() {
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
    System.out.println(configuration);
  }

4.2 读取自定义名称的配置文件来创建流程引擎配置对象

ProcessEngineConfiguration.createProcessEngineConfigurationFromResource()方法可以加载指定位置的配置文件,并获取给定名称的bean来得到流程引擎配置对象。

  @Test
  public void test2() {
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("cfg/activiti-cfg.xml", "processEngineConfiguration");
    System.out.println(configuration);
  }

五、流程引擎对象

ProcessEngine,流程引擎对象,是activiti的核心对象之一,使用该对象来部署流程。

要获取该对象时,需要先获取ProcessEngineConfiguration 流程引擎配置对象来对流程引擎进行配置,然后通过这个配置对象来获取流程引擎对象。下面说明下如何获取流程引擎对象

5.1 buildProcessEngine方法创建
这个方法是ProcessEngineConfiguration类的实例方法,该方法返回一个已经配置好的流程引擎对象

  @Test
  public void testCreateProcessEngine() {
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
    ProcessEngine processEngine = configuration.buildProcessEngine();
    System.out.println(processEngine);
  }

5.2 用ProcessEngines类来获取

activiti在ProcessEngines类中也提供了创建流程引擎对象的方法,这是一个创建和关闭流程引擎的工具类,所有创建的(包括使用其他方式创建的)ProcessEngine实例都会被注册到ProcessEngines中,实际上是在该类中维护了一个Map对象,key为ProcessEngine实例的名称,value为ProcessEngine实例。

5.2.1使用ProcessEngines.init()方法获取

ProcessEngines的init方法,会读取activiti的默认配置文件,即classpath下的activiti.cfg.xml文件,并将创建的流程引擎实例缓存到map中,该方法会在map中创建key=default的ProcessEngine对象,