SpringBoot2.x+mybatis plus3.x整合Activit7版本

朱季謙發表於2021-09-05

最近在參與一個開源專案ruoyi-vue-pro,暫時負責Activiti7工作流的搭建,接這個任務一個原因,是比較好奇Activiti7版本與先前的5、6版本究竟有什麼區別,因為先前在工作當中,最開始接觸的是5.x版本,到後來的6.x版本,當時換版本時,過程其實還是遇到了不少的坑,而這次,也想蹭著業餘時間參與到這個開源專案當中,搗鼓搗鼓activiti7版本有何不同。

在Activiti6版本當中,若要整合到Springboot裡,需要寫一些額外的配置類,我曾經在Activiti工作流框架學習筆記(二)之springboot2.0整合工作流Activiti6.0一文當中總結過相關配置過程,感興趣的同學,可自行點選連結去看下。

換到Activiti7版本後,可以不需要再另外寫一個配置類來將工作流Activiti各介面注入到IOC當中,它已經能自動實現注入相應的服務介面,只需要依賴對應的jar包和在yaml配置檔案裡配置相應的引數,即可實現SpringBoot+Activiti7的整合。

下面分兩步來實現。

一、Maven依賴Activiti7版本

 <properties>
        <activiti.version>7.1.0.M6</activiti.version>
 </properties>


<dependencies>
<dependency>
    <groupId>org.activiti.dependencies</groupId>
    <artifactId>activiti-dependencies</artifactId>
    <version>${activiti.version}</version>
    <type>pom</type>
</dependency>
<!--使用mybatis plus需排除掉mybatis-->
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter</artifactId>
    <version>${activiti.version}</version>
    <exclusions>
        <exclusion>
            <groupId>de.odysseus.juel</groupId>
            <artifactId>juel-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>de.odysseus.juel</groupId>
            <artifactId>juel-spi</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </exclusion>
    </exclusions>
</dependency>
</dependencies>

注意一點是,因為用到了mybatis plus做ORM框架,故而需要排除掉mybatis依賴,否則在專案啟動時,會發生異常提示資訊。

二、在yaml檔案裡配置相應的啟動引數

spring:
  datasource:
    name: druidDataSoure
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/ftedb?useUnicode=true&characterEncoding=UTF-8&ueSSL=false&serverTimezone=GMT%2B8
      username: root
      password: root
  activiti:
    #1.false:預設值,activiti啟動時,對比資料庫表中儲存的版本,如果不匹配。將丟擲異常
    #2.true:啟動時會對資料庫中所有表進行更新操作,如果表存在,不做處理,反之,自動建立表
    #3.create_drop:啟動時自動建立表,關閉時自動刪除表
    #4.drop_create:啟動時,刪除舊錶,再建立新表
    database-schema-update: true
    #activiti7預設不生成歷史資訊表,需手動設定開啟
    db-history-used: true
    check-process-definitions: true
    #full:儲存歷史資料的最高階別,可儲存全部流程相關細節,包括流程流轉各節點引數
    history-level: full

完成以上兩步,即可將Activit7整合到SpringBoot+mybatis plus專案當中。

啟動專案,會發現資料庫裡自動生成了對應的工作流表結構。

image

我會在ruoyi-vue-pro跟其他小夥伴一起完成Activiti7核心模組整合,感興趣的小夥伴可以來研究下該開源框架。

相關文章