SpringBoot 2.7.2 分模块整合 activiti 7.1.0.M6
项目背景
在实习期间,博主接触到了单位的OA系统,但是由于单位与开发方之间没有充分协商(单位的OA系统是有外包公司开发的),所以有一些遗留问题,比如部分流程没有开发,博主这次从单位领导处得到了开发单位盖章审批流程的任务,下面把使用SpringBoot分模块整合activiti版本的过程梳理,希望能给大家提供借鉴和启发。
项目架构
项目由一个process-dao模块(用于数据层)和一个process-service模块(用于服务层)以及一个聚合模块process构成(聚合模块用于dao和service同时构建),其中process-service模块还引用了activiti的依赖,这里activiti作为流程引擎操纵单位服务器上的activiti数据库,而自己编写的process-dao模块操作单位服务器上的process_db数据库
如果不需要进行分模块开发,那么只需要按照本博文中的process-service配置依赖即可,但是还需要在pom文件中引入process-dao中的所有依赖
process-dao
process-service
process
聚合模块中没有任何内容,只有一个pom文件
版本一览
使用SpringBoot整合其他项目,最重要的就是版本管理,因为一个starter包里面包含了很多依赖,非常容易发生依赖的冲突,以下是不会发生冲突的依赖版本
选用activiti 7.1.0.M6的原因是,其中使用的mybatis版本是3.5.0,更老的activiti版本使用的mybatis版本在maven中央仓库中甚至无法找到,由于我们还需要使用mybatis-plus进行开发,mybatis-plus中也含有mybatis,所以只能提升activiti的版本来适应mybatis-plus
如果在运行启动类的时候出现调用了不存在方法(method does not exist之类的,忘记了)的异常,一般是因为依赖冲突,新版本需要的函数在老版本中无法找到,需要在pom文件中解决依赖冲突,这里推荐maven helper插件帮助解决依赖冲突
process-dao模块
<?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.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<a