创建流程引擎

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事务在独立模式下运行时使用。


博弈
2.5k 声望1.5k 粉丝

态度决定一切


引用和评论

0 条评论