SpringBoot2.x+mybatis plus3.x集成Activit7版本

最近在參與一個開源項目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核心模塊集成,感興趣的小夥伴可以來研究下該開源框架。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章