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();
activiti.cfg.xml
必须包含ID为 processEngineConfiguration
的bean。
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"/>
然后,此bean用于构造 ProcessEngine
,有多个可用的类可用于定义 processEngineConfiguration
,这些类表示不同的环境,并相应地设置默认值,最佳做法是选择与你的环境最匹配的类别,以最大程度地减少配置引擎所需的属性数量,当前提供以下类(将来的版本中将有更多类):