爲何要寫這篇 由於剛開始學在網上看了不少 踩了不少坑 最後在一位熱心網友的幫助下 我才完成了此次Hello Activitijava
最近研究 Activiti 從零開始學,網上資料不少 ,大體看了準備寫個Demo,一切的框架從一個Demo開始mysql
由於公司用Springboot搭建的因此我就用 Springboot + Activiti 來寫一個Demogit
首先是pom.xmlspring
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-core</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.21.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>sql
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>數據庫
properies配置apache
spring.datasource.url=jdbc:mysql://localhost:3306/activiti-base?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root123
spring.datasource.driver-class-name=com.mysql.jdbc.Drivermybatis
#自動建立、更新、驗證數據庫表結構
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.show-sql=true框架
spring.activiti.check-process-definitions=falsespring-boot
而後畫一個流程圖 我用的是STS 其實就是Eclipse 安裝一個Activiti的插件就行(自行百度一下
你們注意一下這個文件的路徑啊 (一個新手踩過的坑
流程圖畫完了 咱們就能夠給這個跑起來啦 至於那些接口實現類什麼的 我還沒看呢 畢竟我也是一個新手
如今告訴你們怎麼給這個流程圖跑起來
重點來了 我看了那麼多博客沒有一個告訴我說要先把流程部署起來他才能run
因此咱們先部署
在你的測試類中寫
@Test
public void contextLoads() {
// 1. 部署一個流程定義 [我記得是有3種方式]
Deployment deployment = repositoryService
.createDeployment() // 建立一個Deployment
.name("test流程") // 給流程起的一個名字
.addClasspathResource("processes/MyProcess.bpmn") // bpmn的路徑 你這裏沒有png圖片 ,因此 就用這一個
.deploy();
System.out.println("流程部署ID:" +deployment.getId());
System.out.println("流程部署時間:" +deployment.getDeploymentTime());
System.out.println("流程部署名稱:" +deployment.getName());
而後run一下
而後去你的數據庫看一下
你會發現多了一些表 這些就是activiti的表
部署完以後你會在 act_re_deployment -> 流程部署表 這個表中發現你部署的項目 就說明你的項目部署上了 如今能夠run了
@Test
public void startProcessInstance() {
// ok 部署完成以後讓咱們啓動這個流程
runtimeService.startProcessInstanceByKey("myProcess");
}
run完了以後 act_hi_procinst -> 流程實例表 這個表中你能夠看見你的流程圖run出來的實例
部署一個流程這個表中就會有一個實例
而後你能夠觀察一下 act_ru_task -> 任務表(正在執行的任務)、act_ho_taskinst -> 歷史任務 這兩個任務
歷史任務表裏已經有了一條記錄。可是他的狀態是未完成
看正在執行的任務表,裏面也有一條數據。這是當前正在執行的任務。
ok 這個小Demo完成了
代碼已經放到馬雲上了 https://gitee.com/mike_liu/Activiti_Demo.git 歡迎你們下載查看