SpringBoot2整合activiti6環境搭建
依賴
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mysql驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
這里使用的springboot2.0.6的版本,activiti為6.0.0的版本
添加processes目錄

SpringBoot集成activiti默認會從classpath下的processes目錄下讀取流程定義文件,所以需要在src/main/resources目錄下添加processes目錄,並在目錄中創建流程文件
application.yml
spring: activiti: check-process-definitions: true #自動檢查、部署流程定義文件 database-schema-update: true #自動更新數據庫結構 #流程定義文件存放目錄 process-definition-location-prefix: classpath:/processes/ #process-definition-location-suffixes: #流程文件格式 datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/taosir_process?useUnicode=true&useSSL=false&characterEncoding=utf8 username : root password : root initsize : 10 maxActive : 20 minIdle : 10 maxWait : 120000 poolPreparedStatements : false maxOpenPreparedStatements : -1 validationQuery : select 1 testOnborrow : true testOnReturn : true testWhileIdle : true timeBetweenEvictionRunsMillis : 120000 server: port: 8764
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>
啟動類,注意@SpringBootApplication注解需要設置exclude屬性
package cn.zytao.taosir.process; import org.activiti.spring.boot.SecurityAutoConfiguration; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication(exclude = SecurityAutoConfiguration.class) public class ProcessApplication { public static void main(String[] args) { SpringApplication.run(ProcessApplication.class, args); } }
