前言:
在做項目的時候,公司的項目要用到Activiti,所以,我就開始了各種資料的搜尋,包括視頻,代碼,源碼等等等等,都嘗試了一遍,但是還是感覺學不好。有一本書還挺不錯的,推薦給大家,這一系列的書其實都挺不錯的《Activiti in action》,可以有中文版的電子檔,建議可以去買一本這樣的書。畢竟嘛,支持原創。
如果是剛開始學習Activiti的話,其實最重要就是BPMN2.0規範了,Activiti只是一種實現了大部分BPMN2.0規範的工作流框架而已。但是我不建議大家一開始就去看BPMN2.0規範,因爲看不懂,我也看不懂。那麼學習Activiti怎麼樣纔是有效的呢?
其實Acitivit中涉及到很多的數據庫表,總共有23張,但是有部分的數據表是沒有用到的,當然這個得看具體功能了。如下圖是23張Activiti表,記住,這23張表不是讓你手動去創建的,在Activiti當中已經有關於這方面的操作了。所以你別擔心。接下來我就來說說,怎麼去創建Activiti的23張表吧。如下圖是23張表:
1、既然是學習Activiti的框架,那麼首先肯定是離不開項目了,首先創建一個項目,所有項目都採用Maven管理,這樣就省去依賴關係的jar包。
創建Maven項目自行網上搜索,這裏不再贅述。那麼導入jar包,也自然而然是在maven項目當中的pom.xml文件啦。
如下圖是maven項目當中的pom文件圖片:
這裏關於dependency我就不多說了。其他的需要的jar包請自行添加。
2、添加完jar包的依賴之後,在聯網的情況下,會自動下載相關的jar包,不需要你管,下載完成以後,可以在如下的Maven Dependencies中查看到對應的jar包。
3、我們添加一個Junit測試,所以添加一下JUnit4的jar包。如上圖所示:
4、在src/main/java目錄下創建一個com.xqkj.java包,在這個包下編寫一個java類,名稱爲TestJava.如下圖所示:(resources下的activiti.cfg.xml文件沒有沒關係,可以刪除)
5、在該類當中填入編寫如下的代碼:(關於具體配置細節,先有個大概的認識)
package com.xqkj.test;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.junit.Test;
public class TestJava {
/**使用代碼創建工作流需要的23張表*/
@Test
public void createTable(){
//流程引擎ProcessEngine對象,所有操作都離不開引擎對象
ProcessEngineConfiguration processEngineConfiguration =
ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
//連接數據庫的配置
processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/yarcl?useUnicode=true&characterEncoding=utf8");
processEngineConfiguration.setJdbcUsername("root");
processEngineConfiguration.setJdbcPassword("root");
//三個配置
//1.先刪除表,再創建表:processEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP="create-drop"
//2.不能自動創建表,需要表存在:processEngineConfiguration.DB_SCHEMA_UPDATE_FALSE="false"
//3.如果表存在,就自動創建表:processEngineConfiguration.DB_SCHEMA_UPDATE_TRUE="true"
processEngineConfiguration.setDatabaseSchema(processEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//獲取工作流的核心對象,ProcessEngine對象
ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
System.out.println("processEngine:"+processEngine+"Create Success!!");
}
}
6、這個時候,雙擊createTable這個類,進行單元測試,如果控制檯出現如下的內容,說明23張表創建成功!