Activiti 學習筆記記錄


官方在線用戶手冊(英文版):http://activiti.org/userguide/index.html

中文用戶手冊:http://www.mossle.com/docs/activiti/index.html

 

前言:目前在學習使用 Activiti,將學習過程中較重要的知識點或者遇到的問題與解決方案 記錄下來,方便后來者學習與查詢。

一、項目框架介紹

  所有的測試都是依據在一定的環境框架上的。為了需要而測試。

  我這里選用的是 Spring + SpringMVC + Maven + mysql

  在項目中引入 Activiti,在pom 中添加,version 寫實際版本(5.21.0) 

<dependency>
  <groupId>org.activiti</groupId>
  <artifactId>activiti-engine</artifactId>
  <version>5.x</version>
</dependency>

  

二、數據庫

不管什么項目,數據庫肯定是少不了的啦。

下面列出Activiti使用的數據庫類型(大小寫敏感)。

Activiti數據庫類型 JDBC URL實例 備注
h2 jdbc:h2:tcp://localhost/activiti 默認配置的數據庫
mysql jdbc:mysql://localhost:3306/activiti?autoReconnect=true 使用mysql-connector-java驅動測試
oracle jdbc:oracle:thin:@localhost:1521:xe  
postgres jdbc:postgresql://localhost:5432/activiti  
db2 jdbc:db2://localhost:50000/activiti  
mssql jdbc:sqlserver://localhost:1433/activiti  

 

 Activiti 自帶了23張表,Activiti的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。 用途也和服務的API對應。

  • ACT_RE_*: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態資源 (圖片,規則,等等)。

  • ACT_RU_*: 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數據。 Activiti只在流程實例執行過程中保存這些數據, 在流程結束時就會刪除這些記錄。 這樣運行時表可以一直很小速度很快。

  • ACT_ID_*: 'ID'表示identity。 這些表包含身份信息,比如用戶,組等等。

  • ACT_HI_*: 'HI'表示history。 這些表包含歷史數據,比如歷史流程實例, 變量,任務等等。

  • ACT_GE_*通用數據, 用於不同場景下。

 

數據庫腳本 是在 activiti-engine的jar 中(activiti-engine-x.jar), 在org/activiti/db/create包下(drop目錄里是刪除語句)

執行 DbSchemaCreate 類的main方法

 

正確配置Activiti的項目,啟動的時候,如果事先數據庫中不存在表的話,可以自動將對應版本的數據庫表創建在數據庫中。

<!-- spring負責創建流程引擎的配置文件 -->
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<!-- 數據源 -->
		<property name="dataSource" ref="dataSource" />
		<!-- 配置事務管理器,統一事務 -->
		<property name="transactionManager" ref="transactionManager" />
		<!-- 設置建表策略,如果沒有表,自動創建表 -->
		<property name="databaseSchemaUpdate" value="true" />
	</bean>

  

三、日志

在Activiti 5.12 開始,slf4j 作為日志框架。所有日志(activiti, spring, mybatis等等)都轉發給SLF4J 允許使用你選擇的日志實現。

默認activiti-engine依賴中沒有提供SLF4J綁定的jar, 需要根據你的實際需要使用日志框架。(如果不加也不會有任何提示,不會記錄日志而已)

常用的maven的pom配置為

<!-- 在屬性中添加版本號 -->
<slf4j.version>1.7.21</slf4j.version>

<!-- 依賴包 -->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>${slf4j.version}</version>
</dependency>
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>${slf4j.version}</version>
</dependency>
<!-- common-logging 實際調用slf4j -->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>jcl-over-slf4j</artifactId>
	<version>${slf4j.version}</version>
</dependency>
<!-- java.util.logging 實際調用slf4j -->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>jul-to-slf4j</artifactId>
	<version>${slf4j.version}</version>
</dependency>

  

未完待續(……)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM