创建流程引擎
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事务在独立模式下运行时使用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。