activiti 工作流_SpringBoot入门建站全系列(十九)集成Activiti做工作流

345f689d6a0d7a687ad74d620f0a913a.png

SpringBoot入门建站全系列(十九)集成Activiti做工作流

一、概述

Activiti作为一个流行的开源工作流引擎,正在不断发展,其6.0版本以API形式提供服务,而之前版本基本都是要求我们的应用以JDK方式与其交互,只能将其携带到我们的应用中,而API方式则可以服务器独立运行方式,能够形成一个专网内工作流引擎资源共享的方式。

本篇activiti工作流基于5.22.0。

代码可以在SpringBoot组件化构建https://www.pomit.cn/java/spring/springboot.html中的Activiti组件中查看,并下载。

如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。

二、配置

本文假设你已经引入spring-boot-starter-web。已经是个SpringBoot项目了,如果不会搭建,可以打开这篇文章看一看《SpringBoot入门建站全系列(一)项目建立》。

使用activiti前,首先要在数据库中将activiti需要的sql导入到数据库中。

可以去官网:https://www.activiti.org/下载个activiti,把下载好的文件中的sql导入;

也可以不管它,启动的时候会自动生成表的。。。

2.1 Maven依赖

需要引入activiti-spring-boot-starter-basic,这里要访问数据库对工作流数据进行操作,所以要依赖数据库相关jar包。

<dependency>
    

5.22版本是可以正常运行的一个版本,但是存在一个bug,就是jar包下载之后提示损坏,如果出现这个提示,直接到maven中央仓库下载下来jar包覆盖本地的即可。

2.2 配置文件

在application.properties 中需要添加下面的配置:

spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
spring.datasource.dbcp2.max-wait-millis=60000
spring.datasource.dbcp2.min-idle=20
spring.datasource.dbcp2.initial-size=2
spring.datasource.dbcp2.validation-query=SELECT 1
spring.datasource.dbcp2.connection-properties=characterEncoding=utf8
spring.datasource.dbcp2.validation-query=SELECT 1
spring.datasource.dbcp2.test-while-idle=true
spring.datasource.dbcp2.test-on-borrow=true
spring.datasource.dbcp2.test-on-return=false

spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/cff?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=cff
spring.datasource.password=123456

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis.mapper-locations=classpath:mapper/*.xml

spring.autoconfigure.exclude=org.activiti.spring.boot.SecurityAutoConfiguration

这里的配置主要就是数据库及数据源、mybatis的配置。

spring.autoconfigure.exclude,这个配置比较特殊,是activiti的bug导致启动失败,需要将org.activiti.spring.boot.SecurityAutoConfiguration排除掉。

2.3 Activiti流程配置

下面是工作流流程配置文件,配置了一个流程,Start--》commit--》CustomerServiceApproval--》ManagerApproval--》End。

<?xml version="1.0" encoding="UTF-8"?>

这里,activiti:executionListener 配置了一个监听器,监听流程流转。

三、Activiti工作流功能

流程监听器,我这里啥也不监听了,但是还是要写出来。

CommitExecutionListener:

package 

工作流处理过程的service:

ProductService:

package 

这个service中:

  • genTask 是工作流的开端,产生任务之后,即流转到下一个节点。
  • applyList,申请的任务列表。
  • waitList:待处理的任务。
  • processCommit: 让工作流流转起来。

四、测试Activiti工作流

我们定义一个web接口来做测试。

ActivitiRest:

package 

五、过程中用到的其他数据库相关service、mapper、实体

UserInfoService:

package 

ProductMapper :

package 

ProductMapper 对应的mybatis-productTask.xml:

<?xml version="1.0" encoding="UTF-8" ?>  

ProductTask:

package 

UserInfoMapper :

UserInfoMapper 对应的mybatis-userInfo.xml:

UserInfo :

详细完整的实体及测试用例,可以访问品茗IT-博客《SpringBoot入门建站全系列(十九)集成Activiti做工作流》进行查看

快速构建项目

Spring组件化构建

SpringBoot组件化构建

SpringCloud服务化构建

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值