手记

说说如何搭建 Activiti 开发环境

1.1 目录结构

解压后,Activiti 5.x 的目录结构为:

  1. database:Activiti 引擎数据库脚本。

  • create:创建。

  • drop:删除。

  • upgrade:版本升级。

doc :文档。

  • javadocs:API 说明。

  • userguide:用户手册。

  • xsd:与流程定义相关的 scheme。

libs:Activiti 引擎各个模块的 JAR 包。

wars: explorer 模块和 rest 模块的 WAR 包。

1.2 API 包说明

说明
org.activiti.engineService 接口 、 异常类定义、流程引擎、流程引擎配置以及运行时异常类 。
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


0人推荐
随时随地看视频
慕课网APP