根據上篇文章springboot2.0+activiti 7 整合(一)–初識activiti和創建數據庫操作,已經把activiti的數據庫創建完成;接下來運行一個簡單的官方示例。官方demo
要運行一個activiti的demo,至少需要三部分:
- activiti的API+springboot
- activiti的數據庫
- bpmn文件
1、先查看數據庫的任務表
查看act_ru_task表
剛新建的數據庫是沒有任務的。
2、創建bpmn文件
在resources目錄下,創建一個processes的文件夾,再創建bpnm文件(one-task-process.bpmn20.xml)。注意:(activiti支持的是bpmn2.0,所有bpmn文件名一定是*.bpmn20.xml結尾),因爲idea的繪製工具插件默認bpmn文件是bpmn結尾。
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti="http://activiti.org/bpmn"
targetNamespace="Examples">
<process id="oneTaskProcess" name="The One Task Process">
<startEvent id="theStart" />
<sequenceFlow id="flow1" sourceRef="theStart" targetRef="theTask" />
<userTask id="theTask" name="my task" />
<sequenceFlow id="flow2" sourceRef="theTask" targetRef="theEnd" />
<endEvent id="theEnd" />
</process>
</definitions>
3、配置application.yml
之前創建數據庫的時候降低了mysql的版本,現在數據庫創建完成,以後的調用可以使用開發過程中mysql的版本了。我這裏就升級了mysql 的版本,使用
com.mysql.cj.jdbc.Driver
spring:
datasource:
#數據源基本配置
username: root
password: root
url: jdbc:mysql://localhost/activiti?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&nullCatalogMeansCurrent=true&useSSL=false&useLegacyDatetimeCode=false
driver-class-name: com.mysql.cj.jdbc.Driver
4、創建測試類
官方文檔是寫在main函數裏面運行,我因爲平時習慣使用測試類:
package com.example.activitidemo2;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
@SpringBootTest
class ActivitiDemo2ApplicationTests {
@Resource
RepositoryService repositoryService;
@Resource
RuntimeService runtimeService;
@Resource
TaskService taskService;
@Test
void contextLoads() {
System.out.println("Number of process definitions : "
+ repositoryService.createProcessDefinitionQuery().count());
System.out.println("Number of tasks : " + taskService.createTaskQuery().count());
runtimeService.startProcessInstanceByKey("oneTaskProcess");
System.out.println("Number of tasks after process start: " + taskService.createTaskQuery().count());
}
}
運行結果應如下:
Number of process definitions : 1
Number of tasks : 0
Number of tasks after process start: 1
5、再查看數據庫
查看act_ru_task表
多運行幾次測試程序,任務的數量也會不斷增多。
到此一個流程就啓動起來了,接下來開始繪製我們自己的業務流程圖並運行。