1.1 目录结构
解压后,Activiti 5.x 的目录结构为:
database:Activiti 引擎数据库脚本。
create:创建。
drop:删除。
upgrade:版本升级。
doc :文档。
javadocs:API 说明。
userguide:用户手册。
xsd:与流程定义相关的 scheme。
libs:Activiti 引擎各个模块的 JAR 包。
wars: explorer 模块和 rest 模块的 WAR 包。
1.2 API 包说明
包 | 说明 |
---|---|
org.activiti.engine | Service 接口 、 异常类定义、流程引擎、流程引擎配置以及运行时异常类 。 |
org.activiti.engine.delegate | 定义了处理流程的行为和监听事件规范,我们可以在流程定义中配置监听接口。可以通过它来实现流程结束时的归档功能。 |
org.activiti.engine.form | 可用于自定义表单。定义表单有两种方式:【1】在流程定义中设置每个节点的表单内容,可以设置每个字段( Field )的类型 、 是否可以编辑等属性 。 【2】通过外置表单的形式,通过 formkey 来指定外置表单文件的名称,类型可以是 .xml 或 .form。可以通过 FormService 接口实现读取和提交表单。 |
org.activiti.engine.history | 包含了历史记录查询对象及查询结果的历史数据对象接口 。比如历史流程实例(HistoricProcessInstance ) 、 历史任务 ( HistoricTask ) 、 历史活动( HistoricActivity ) 、 历史详细( HistoricDetail )等。 |
org.activiti.engine.identity | 用于管理身份和认证功能。 |
org.activiti.engine.management | 流程引擎管理功能,比如可以监控引擎的状态以及任务调度功能 。 |
org.activiti.engine.query | 定义了查询功能。 |
org.activiti.engine.repository | 管理与查询流程资源。比如可以部署流程定义 、 自定义表单 、 规则等文件,还可以读取流程图片 、流程定义( bpmn20.xml )文件 。 |
org.activiti.engine.runtime | 用于查询运行时数据。还可以控制流程的状态(挂起与恢复)。 |
org.activiti.engine.task | 定义了任务对象。通过 TaskService 接口,我们可以对任务( Task )进行管理(创建、删除、指派、批注、附件管理以及变量查询) 。 |
org.activiti.engine.test | 通过它,可以快速创建测试用例,用于验证流程定义的业务逻辑流转是否符合业务要求。这对于采用 TDD 开发的企业与开发人员来说,简直就是福音哦O(∩_∩)O~ |
2 开发环境
2.1 JDK 1.6+
Activiti 5.x 需要 JDK 1.6+ 版本。检查本地开发环境的 java 版本命令为:
java -version
输出结果:
2.2 Ant 1.8.1+
Activiti Explorer 的示例程序需要 Ant 1.8.1+ 构建运行。检查本地开发环境的 Ant 版本命令为:
ant -version
输出结果:
2.3 Maven 3.x
我们使用 Maven 来管理项目依赖。检查本地开发环境的 Maven 版本命令为:
mvn -version
输出结果:
3 配置文件
3.1 Activiti 配置文件
Activiti 配置文件名为 activiti.cfg.xml,用于定义流程引擎初始化参数 、流程相关 bean、 邮件服务器及各种流程事件监听。
<?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 id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration"> <property name="databaseType" value="h2"/> <property name="databaseSchemaUpdate" value="true"/> <property name="jobExecutorActivate" value="false"/> <property name="history" value="full"/> </bean></beans>
它实际上就是 Spring 配置文件。
processEngineConfiguration bean 对象,是 Activiti 默认的引擎配置管理器名称。
这里我们配置了 h2 内存数据库,因为速度快,所以很容易测试。
引擎配置参数说明如下:
参数 | 说明 |
---|---|
databaseType | 数据库类型。默认为 h2,还支持 mysql、oracle、postgres、mssql 以及 db2。 |
databaseSchemaUpdate | 数据库脚本的更新策略。false:不更新;true: Activiti 表不存在时 , 自动创建表 ; 当 Activiti 的 jar 文件定义的版本号与数据库中记录的版本号不一致时,自动执行相应的升级脚本,并且会记录升级过程 。 create-drop:创建引擎时执行数据库初始化脚本;引擎销毁时 , 执行数据库删除脚本。该策略一般用于单元测试。 |
jobExecutorActivate | 是否启用作业执行功能, 默认为 false。 true 表示引擎不间断地刷新数据库中的作业表 , 检查是否存在需要执行的作业 , 有则触发执行作业 。 作业的来源可以是各种时间事件或异步任务 。 |
history | 记录历史日志明细级别,默认为 audit。none:不记录,此举可以提高性能。activity:保存所有的流程实例、任务与活动信息。audit:除了 activity 级别所记录的信息之外,还记录了表单属性。full:最全的日志记录。比如除了 audit 级别所记录的信息之外,还记录了流程变量信息。 |
3.2 Maven 配置
可以配置 Maven 仓库为:http://repo1.maven.org/maven2/
首先在 pom.xml 中定义 Activiti 的版本号属性:
<properties> <activiti.version>5.22.0</activiti.version></properties>
然后引用 Activiti 引擎库:
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>${activiti.version}</version></dependency>
因为可能还会引用 Activiti 的其它库,所以我们这里定义了一个版本号属性,便于以后升级版本之用。
作者:deniro
链接:https://www.jianshu.com/p/33026f7368de