转载

Activiti 用户指南(创建流程引擎)

创建流程引擎

Activiti流程引擎通过名为 activiti.cfg.xml 的XML文件进行配置,请注意,如果你使用的是Spring风格的流程引擎构建,则此方法不适用。

获取 ProcessEngine 的最简单方法是使用 org.activiti.engine.ProcessEngines 类:

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine()

这将在类路径上查找 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配置,这并不意味着Activiti只能在Spring环境中使用!只是在内部利用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);

也可能不使用配置文件,而是基于默认值创建配置(有关更多信息,请参见不同的受支持类)。

ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();  ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();

所有这些 ProcessEngineConfiguration.createXXX() 方法都返回一个 ProcessEngineConfiguration ,可以根据需要对其进行进一步调整,调用 buildProcessEngine() 操作后,将创建一个 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 ,这些类表示不同的环境,并相应地设置默认值,最佳做法是选择与你的环境最匹配的类别,以最大程度地减少配置引擎所需的属性数量,当前提供以下类(将来的版本中将有更多类):

  • 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事务在独立模式下运行时使用。
原文  https://segmentfault.com/a/1190000021299429
正文到此结束
Loading...