創建ProcessEngine


 

activiti流程引擎是通過activiti.cfg.xml文件配置的(這並不符合Spring構建流程引擎的編碼風格)。

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine()

 

這將在類路徑中查找activiti.cfg.xml文件,並根據該文件中的配置構造一個引擎。

activiti.cfg.xml文件示例:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

    <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
    <property name="jdbcDriver" value="org.h2.Driver" />
    <property name="jdbcUsername" value="sa" />
    <property name="jdbcPassword" value="" />

    <property name="databaseSchemaUpdate" value="true" />

    <property name="asyncExecutorActivate" value="false" />

    <property name="mailServerHost" value="mail.my-corp.com" />
    <property name="mailServerPort" value="5025" />
  </bean>

</beans>

注意,配置XML實際上是一個Spring配置。

 

ProcessEngineConfiguration對象也可以使用配置文件通過編程方式創建。還可以使用不同的bean id(例如,參見第3行)。

ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(String resource);
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(String resource, String beanName);
ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(InputStream inputStream);
ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(InputStream inputStream, String beanName);

 

如果沒有指定配置文件,則使用默認的activiti.cfg.xml文件。

通過ProcessEngineConfiguration創建ProcessEngine 

ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
  .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE)
  .setJdbcUrl("jdbc:h2:mem:my-own-db;DB_CLOSE_DELAY=1000")
  .setAsyncExecutorActivate(false)
  .buildProcessEngine();

 

 

ProcessEngineConfiguration bean

activiti.cfg.xml配置文件一定要包含id為processEngineConfiguration的配置Bean

 <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

 

這個bean用來構造ProcessEngine,可以用來配置processEngineConfiguration的類有多個。這些類代表了不同場景的使用情況,且都設置了一些默認值。在使用時選擇最匹配使用場景的類來構造processEngineConfiguration。目前可用的類有:

 

  • org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration:流程引擎以獨立方式使用。Activiti將負責事務。默認情況下,只有在引擎啟動時才會檢查數據庫(如果沒有Activiti數據庫或數據庫版本不正確,則會引發異常)。

  • org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration:這是一個用於單元測試的便利類。Activiti將負責事務。H2內存數據庫默認使用。數據庫將在引擎啟動時創建,關閉時刪除。使用這個時,可能不需要額外的配置(除了使用例如作業執行程序或郵件功能時)。

  • org.activiti.spring.SpringProcessEngineConfiguration:在Spring環境中使用流程引擎時使用。有關更多信息,請參閱Spring集成部分

  • org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration:在引擎以獨立模式運行時使用JTA事務。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM