基于springboot的Activiti6流程引擎——手把手教学(1)

基于springboot的Activiti6流程引擎——手把手教学(1)


第一节:项目搭建、配置与初始化

1 项目准备

这是我的配置:
(1)jdk1.8.0_121
(2)apache-maven-3.5.2
(3)IDEA2020.3
(4)mysql5.7
(5)navicat11.2.7
有了这些之后:
1)在idea中要安装一个插件:Activiti BPMN visualizer:
插件activiti bpmn visualizer
安装成功后,打开idea将会看到如下:
安装成功

2)建一个数据库:
在这里插入图片描述
3)建一个空白springboot项目,引入下列jar包:
spring-boot-starter-web、spring-boot-starter-web-services、mysql-connector-java、hutool-all、lombok、activiti-spring-boot-starter-basic、activiti-engine、activiti-spring、mybatis-plus-boot-starter
此时pom.xml完整内容为:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.3</version>
		<relativePath />
	</parent>
	<groupId>com.example.activiti</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo-activiti</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
		<activiti.version>6.0.0</activiti.version>
		<mybatis-plus.version>3.4.2</mybatis-plus.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web-services</artifactId>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
		<dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-all</artifactId>
			<version>5.8.6</version>
		</dependency>

		<!--activiti begin-->
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-spring-boot-starter-basic</artifactId>
			<version>${activiti.version}</version>
		</dependency>
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-engine</artifactId>
			<version>${activiti.version}</version>
		</dependency>
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-spring</artifactId>
			<version>${activiti.version}</version>
		</dependency>
		<!-- mybatisPLUS-->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>${mybatis-plus.version}</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>demo-activiti</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

我这里用的是springboot的web项目,所以引入spring-boot-starter-web,mybatisplus和mysql-connector-java是数据库用的,hutool是一个非常不错的工具包,activiti-engine是流程引擎核心包,activiti-spring是activiti与spring整合的包,activiti-spring-boot-starter-basic是springboot与activiti启动时的整合包。
综上,完整的项目结构为:
完整项目结构
至此,基本配置完毕。

2 配置yml

基础的先配上:

server:
  port: 8080
  servlet:
    context-path: /demo_activiti
spring:
  #activiti流程引擎配置
  activiti:
    # 自动部署验证设置:true-开启(默认)、false-关闭
    check-process-definitions: false
    #完整的日志级别
    history-level: full
    #用历史表
    db-history-used: true
    # activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。(开发时常用)
    database-schema-update: true
    #流程的文件为止前缀
    process-definition-location-prefix: classpath:/processes/
    #流程引擎启动不激活
    async-executor-activate: false
  #数据库配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo-activiti?useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username : root
    password : 123456789
# mybatis-plus配置
mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

这里的datasource、mybatis部分我不做赘述了,一定把username和password配置正确,如果有疑问可以在评论区留言交流。
主要说一下spring的activiti集成部分。activiti与springboot集成的jar包中已经有了一些默认的基础配置,源代码在ActivitiProperties.java中。这个地方我解释一下,我不让系统自动部署流程,而且要让它生成activiti表结构;除此之外那些配置的意思,读者自己百度一下,如果有疑问可以在评论区或者单独跟我交流。
springboot的application配置好:

package com.example.activiti.demo;

import org.activiti.spring.boot.SecurityAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

3 启动项目

不出意外的话,应该是启动成功了,如果有意外的话,可以给我留言。
一定注意要加:**@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})**如果是用@SpringBootApplication会报错找不到SecurityAutoConfiguration的!肯定很多人遇到这个坑的。
启动成功,看到下图:
启动成功
恭喜你!
打开navicat看一下数据库,activiti表已经被初始化成功了:
在这里插入图片描述
一共28张表。

4 小结

这节我主要是说:

(1)基础环境的准备;
(2)整合springboot、activiti、mybatis的主要jar包;
(3)启动项目,自动生成activiti6的28张表。

细心而又睿智的读者已经发现,我开头说的Activiti BPMN visualizer插件还没说用途。Activiti BPMN visualizer是画流程图用的,在下一节,我会正式说一下如何画流程图、部署流程。还有,项目启动时生成了28张表,到底干嘛用的?未来就是要绕着28张表在反反复复的说、用、写。

谢谢大家看到这里,如果您有开发上面的难题,希望您能与我一起探讨,我是天赐我爱,谢谢。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值