# springboot2-activiti7 **Repository Path**: dgatiger/springboot2-activiti7 ## Basic Information - **Project Name**: springboot2-activiti7 - **Description**: spinrgboot 2.1.5集成activiti 7.1.0.M5测试代码 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 6 - **Created**: 2020-03-25 - **Last Updated**: 2022-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## SpringBoot2集成Activiti7 SpringBoot2集成Activiti7、Swagger、Druid #### 1.环境 - IDEA - Spring Boot 2.1.13 >由于Activiti 7.1.M6依赖的spring-core是5.1.x,所以不能使用依赖于spring-core 5.2.x的Spring Boot 2.2.x - Activiti 7.1.M6 - Swagger 2.9.2 - Druid 1.1.20 - mysql 8.1.19 - JAVA 11 #### 2.pom.xml ```xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.13.RELEASE com.dimaidt.workflow dimaidt-workflow 0.0.1-SNAPSHOT dimaidt-workflow dimaidt Workflow 1.8 7.1.0.M6 2.1.1 2.9.2 1.1.20 org.activiti.dependencies activiti-dependencies ${activiti.version} pom org.mybatis.spring.boot mybatis-spring-boot-starter ${mybatis.version} org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-security mysql mysql-connector-java runtime com.alibaba druid ${druid.version} org.activiti activiti-spring-boot-starter ${activiti.version} org.activiti activiti-image-generator ${activiti.version} io.springfox springfox-swagger2 ${swagger.version} io.swagger swagger-annotations io.swagger swagger-models io.swagger swagger-annotations 1.6.0 io.swagger swagger-models 1.6.0 io.springfox springfox-swagger-ui ${swagger.version} org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin ``` #### 4.MySQL脚本 例子中使用了 org.springframework.security,所以数据库中,需要先建库建表: MySQL用的版本是8.0.19, 建库: ```SQL SELECT version(); +-----------+ | version() | +-----------+ | 8.0.19 | +-----------+ DROP DATABASE IF EXISTS ACTIVITI7; CREATE DATABASE ACTIVITI7; ``` 建表 ```SQL USE ACTIVITI7; DROP TABLE IF EXISTS users ; CREATE TABLE users ( username VARCHAR(20) NOT NULL, PASSWORD VARCHAR(150) NOT NULL, enabled TINYINT(1) DEFAULT NULL, PRIMARY KEY (username) ) ENGINE=INNODB DEFAULT CHARSET=utf8 ; DROP TABLE IF EXISTS authorities; CREATE TABLE authorities ( id BIGINT(20) NOT NULL AUTO_INCREMENT, username VARCHAR(20) NOT NULL, authority VARCHAR(50) NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB DEFAULT CHARSET=utf8; ``` #### 4.application.yml ```yaml spring: #Activiti property configuration activiti: database-schema-update: true job-executor-activate: true # asyncExecutorEnabled属性设置设置true后将代替那些老的Job executor history-level: full db-history-used: true #async-executor-activate: true check-process-definitions: true # 自动部署验证设置:true-开启(默认)、false-关闭 datasource: url: jdbc:mysql://localhost:3306/activiti7?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource initialization-mode: always initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true # filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 druid: initial-size: 1 max-active: 20 min-idle: 3 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 filters: stat,wall,slf4j connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis: 5000 logging: level: com.ascendant: debug pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} %clr(-%5p) %clr(${PID:- }){magenta} --- %clr([%15.15t]){faint} %highlight(%-80.80logger{300}){cyan} %clr(:) %m %n%wEx" swagger: enabled: true ``` 特别说明: check-process-definitions:自动部署验证,若为true则会判断该定义是否已经部署,没部署则部署,否则不部署;若为false则不管流程是否已经部署都重新部署一遍!