環境:SpringBoot2.x Activiti5.22
增加pom配置
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>5.22.0</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-jpa</artifactId> <version>5.22.0</version> </dependency>
如果項目加入了mybatis 通用mapper,需要排除persistence-api
<!-- mybatis 通用mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.4</version> <exclusions> <exclusion> <artifactId>persistence-api</artifactId> <groupId>javax.persistence</groupId> </exclusion> </exclusions> </dependency>
SpringBoot集成activiti默認會從classpath下的processes目錄下讀取流程定義文件,所以需要在src/main/resources目錄下添加processes目錄,並在目錄中創建流程文件
新建一個流程test.bpmn文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="Examples" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1539757531057" name="" targetNamespace="Examples" typeLanguage="http://www.w3.org/2001/XMLSchema"> <process id="oneTaskProcess" isClosed="false" name="The One Task Process" processType="None"> <startEvent id="theStart"/> <sequenceFlow id="flow1" sourceRef="theStart" targetRef="theTask"/> <userTask activiti:assignee="${user}" activiti:exclusive="true" id="theTask" name="my task"/> <sequenceFlow id="flow2" sourceRef="theTask" targetRef="theEnd"/> <endEvent id="theEnd"/> </process> </definitions>
application.yml增加如下配置
spring:
activiti:
check-process-definitions: false #自動檢查、部署流程定義文件
database-schema-update: true #自動更新數據庫結構
#流程定義文件存放目錄
process-definition-location-prefix: classpath:/processes/
#process-definition-location-suffixes: #流程文件格式
啟動類,注意@SpringBootApplication注解需要設置exclude屬性
//集成activiti工作流 增加exclude = SecurityAutoConfiguration.class @SpringBootApplication(exclude = SecurityAutoConfiguration.class)
然后啟動項目成功后,可以看到數據庫多了工作流相關的表。