說說如何搭建 Activiti 開發環境

1 下載
首先到官網下載 Activiti 5.x 。

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 的其它庫,所以我們這裡定義了一個版本號屬性,便於以後升級版本之用。
至此,Activiti 開發環境就算是搭建好咯,後面會說說如何使用 Activiti Explorer 設計流程模型哦O(∩_∩)O~