用户的脑洞永远都在碾压我的技术水平,最近又有用户想在流程上大做文章。于是,我只能重翻Activiti 6的用户手册和API,从头记录并分享一下。
Activiti 6的User Guide目录为https://www.activiti.org/userguide/#configuration。
这一篇先介绍Activiti的基本配置。
ProcessEngine的基本配置
流程引擎创建时,虽然可以在代码中直接指定其类型,但一般都是通过加载资源文件、Spring解析来决定其类型。这时,我们需要在对应的资源文件中配置processEngineConfiguration,如下:
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
上面的class有三个常用选择,都是ProcessEngineConfigurationImpl的子类:
org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration: 独立流程引擎配置。
org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration: 基于内存的流程引擎配置,设置了默认的jdbcUrl和databaseSchemaUpdate。
org.activiti.spring.SpringProcessEngineConfiguration: Spring的流程引擎配置,重新定义了事务管理器、初始化JPA、设置数据库。
数据库配置
Activiti引擎缺省默认的数据库为H2内存数据库,除此之外,还有有两种配置方式。
- 配置JDBC属性,使用MyBatis提供的连接池。但比较简单,不推荐生产环境使用。
<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="create-drop" /> </bean>
- 配置DataSource,可选第三方实现,这里以Druid为例。
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="dataSource" ref="dataSource"/>