目录
2.1 Activiti支持多种数据库,默认使用H2内存数据库
1. 流程引擎配置对象
1.1 创建流程银枪配置对象的方式
最多使用的就是ProcessEngines.getDefaultProcessEngine(),他会自动在classpath中加载activiti.cfg.xml,初始化StandaloneProcessEngineConfiguration对象
//默认从classpath下activiti.cfg.xml加载信息用于构建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
1.2 activiti.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 -->
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ACT?characterEncoding=utf-8" />
<property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUsername" value="kevin" />
<property name="jdbcPassword" value="123456" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
2. 数据源配置
2.1 Activiti支持多种数据库,默认使用H2内存数据库
2.2 数据库策略
2.2.1 databaseSchemaUpdate的可选项
- true
- false
- create-drop
- drop-create
2.2.2 选项说明
false:流程引擎启动的时候就对比数据库中保存的版本,如果数据库中没有表,或者版本不匹配, 在启动的时候抛出异常
true:在启动时activiti会对数据库中所有的表进行更新,表不存在就创建
create-drop:流程引擎在启动的时候会执行数据库的创建,在执行engine.close()的时候把所有表删除
drop-create:先将原来的表全部删除再进行创建(不推介)
3. 其他属性配置
以下属性都是配置在<bean id="processEngineConfiguration" />的property中的
3.1 history属性
3.1.1 可选值
none:不保存任何的历史数据,因此在流程执行的过程中,最高效
activity:级别高于none,保存流程实例与流程行为,其他数据不保存
audit:处activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值
full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
3.1.2 相关表
3.2 asyncExecutorActivate
3.3 邮件服务器
Activiti支持邮件服务,当流程执行到某一个节点时,Activiti会根据流程文件配置(Email Task),发送邮件到相应的邮箱。
邮件服务器的配置项:
- mailServerHost:邮件服务器地址
- mailServerPort:SMTP发送邮件服务器端口,默认值25
- mailServerDefaultFrom:非必填,发送人的邮箱地址,默认值为activiti@activiti.org
- mailServerUsername:邮箱登录用户名
- mailServerPassword:邮箱登录密码
- mailServerUseSSL:是否使用SSL协议通信,默认为false
- mailServerUseTLS:是否使用TLS协议通信,默认为false
4. 服务组件
4.1. RepositoryService
提供一系列管理流程定义和流程部署的API
4.2. RuntimeService
在流程运行时对流程实例进行管理与控制
4.3. TaskService
对流程任务进行管理,如任务提醒、任务完成和创建任务等
4.4. IdentityService
提供对流程角色数据进行管理的API, 这些角色数据包括用户组、用户和它们之间的关系
4.5. ManagementService
提供对流程引擎进行管理和维护的服务
4.6. HistoryService
对流程的历史数据进行操作,包括查询、删除这些历史数据
4.7. DynamicBpmnService
使用该服务,可以不需要重新部署流程模型,就可以实现对流程模型的部分修改