image.png

idea新建一个SpringBoot项目

新建一个空项目

image.png
image.png
image.png

在该项目下新建springboot model

image.png
image.png
image.png
image.png
image.png

image.png
image.png
image.png

  1. server:
  2. port: 8080
  3. servlet:
  4. context-path: /
  5. session:
  6. timeout: 9000
  7. spring:
  8. datasource:
  9. username: root
  10. password: root
  11. url: jdbc:mysql://127.0.0.1:3306/activiti7?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true
  12. driver-class-name: com.mysql.cj.jdbc.Driver
  13. #日志的相关配置
  14. logging:
  15. level:
  16. root: info
  17. #日志的相关配置
  18. spring.activiti.history-level: full
  19. spring.activiti.db-history-used: true
  20. # spring-activiti
  21. # 自动部署验证设置:true-开启(默认)、false-关闭
  22. spring.activiti.check-process-definitions: false

image.png

package com.torey.activiti7_workflow.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * 将该类变成一个对外能访问的接口
 */
@RestController
public class HelloController {
    @RequestMapping(value = "hello",method =RequestMethod.GET)
    public String hello(){
        return "Activit7欢迎你";
    }
}

image.png

Springboot与Activiti7整合

https://github.com/
image.png
image.png
https://github.com/Activiti/Activiti
image.png
image.png
image.png
M5后有一个bug,所以使用M4
image.png
注意:以下pom仓库地址,后续需要替换掉,这些在阿里仓库里名称不叫这个

  <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti.dependencies</groupId>
            <artifactId>activiti-dependencies</artifactId>
            <version>7.1.0.M4</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>

image.png
image.png
https://maven.aliyun.com/mvn/guide
image.png
image.png

     <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter</artifactId>
            <version>7.1.0.M4</version>
       <!--这个pom需要删除掉,否则会报错-->
            <type>pom</type>
        </dependency>

image.png
image.png

最终pom文件

  <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter</artifactId>
            <version>7.1.0.M4</version>
        </dependency>
        <dependency>
            <groupId>org.activiti.dependencies</groupId>
            <artifactId>activiti-dependencies</artifactId>
            <version>7.1.0.M4</version>
            <type>pom</type>
        </dependency>

做完以上操作后,就可以建一个新的数据库

建一个新的测试库,运行项目,就测试库就有表数据了
image.png
image.png

配置添加历史表

application.yml

server:
  port: 8080
  servlet:
    context-path: /
    session:
      timeout: 9000
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://127.0.0.1:3306/activiti?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true
    driver-class-name: com.mysql.cj.jdbc.Driver
    #日志的相关配置
logging:
  level:
    root: info
#日志的相关配置
#Activiti7历史表创建
spring.activiti.history-level: full
spring.activiti.db-history-used: true
# spring-activiti
# 自动部署验证设置:true-开启(默认)、false-关闭
spring.activiti.check-process-definitions: false

运行项目后,刷新数据库,历史表就创建了
image.png
做完以上操作后,程序运行还是会报错,因为
Activit官方生成的数据库,有些字段是缺失的,需要执行以下sql

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- 创建用户表
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL COMMENT '姓名',
  `address` varchar(64) DEFAULT NULL COMMENT '联系地址',
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '密码',
  `roles` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '角色',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

-- ----------------------------
-- 填充用户表
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'admincn', 'beijing', 'admin', '$2a$10$gw46pmsOVYO.smHYQ2jH.OoXoe.lGP8OStDkHNs/E74GqZDL5K7ki', 'ROLE_ACTIVITI_ADMIN');
INSERT INTO `user` VALUES ('2', 'bajiecn', 'shanghang', 'bajie', '$2a$10$gw46pmsOVYO.smHYQ2jH.OoXoe.lGP8OStDkHNs/E74GqZDL5K7ki', 'ROLE_ACTIVITI_USER,GROUP_activitiTeam,g_bajiewukong');
INSERT INTO `user` VALUES ('3', 'wukongcn', 'beijing', 'wukong', '$2a$10$gw46pmsOVYO.smHYQ2jH.OoXoe.lGP8OStDkHNs/E74GqZDL5K7ki', 'ROLE_ACTIVITI_USER,GROUP_activitiTeam');
INSERT INTO `user` VALUES ('4', 'salaboycn', 'beijing', 'salaboy', '$2a$10$gw46pmsOVYO.smHYQ2jH.OoXoe.lGP8OStDkHNs/E74GqZDL5K7ki', 'ROLE_ACTIVITI_USER,GROUP_activitiTeam');

-- ----------------------------
-- 修复Activiti7的M4版本缺失字段Bug
-- ----------------------------
alter table ACT_RE_DEPLOYMENT add column PROJECT_RELEASE_VERSION_ varchar(255) DEFAULT NULL;
alter table ACT_RE_DEPLOYMENT add column VERSION_ varchar(255) DEFAULT NULL;

-- ----------------------------
-- 动态表单数据存储
-- ----------------------------
DROP TABLE IF EXISTS `formdata`;
CREATE TABLE `formdata` (
  `PROC_DEF_ID_` varchar(64) DEFAULT NULL,
  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `FORM_KEY_` varchar(255) DEFAULT NULL,
  `Control_ID_` varchar(100) DEFAULT NULL,
  `Control_VALUE_` varchar(2000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

做完以上操作,程序就可以运行成功了