黃莆課堂java之工作流activiti6升級到activiti7

Activiti6 升級到Activiti7注意事項

Activiti 6 和 Activiti 7 主要區(qū)別在于架構(gòu)和使用的技術(shù)棧。Activiti 6 是基于 Spring 的 BPMN 工作流引擎,而 Activiti 7 是基于 Spring Boot 的 BPMN 工作流引擎,并使用了新的技術(shù)棧,如 Spring Cloud、Spring Cloud Stream 和 Spring Cloud Task。 Activiti 7 還加入了對 CMMN 和 DMN 標(biāo)準(zhǔn)的支持。具體activiti6和7的主要區(qū)別說清楚點兒就是表單和權(quán)限的差異。至于云部署我們的審批服務(wù)項目未涉及。

以我們審批服務(wù)為基線

· Activiti 7.1.0.M6
· Springboot 2.4.13

springboot集成activit7 .
1、activiti7版本7.1.0.M6

<dependency>
<groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>7.1.0.M6</version> </dependency>
<dependency>
<groupId>org.activiti.dependencies</groupId> <artifactId>activiti-dependencies</artifactId> <version>7.1.0.M6</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2.集成mybatis
mybatis:
mapper-locations:classpath:mapper/*Mapper.xml type-aliases-package: com.liurz.process.acitiviti7.entity
configuration:
map-underscore-to-camel-case: true

日志輸出

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  1. 操作說明
    3.1 activiti7集成了SpringBootSecurity,禁用后以后老的API即可用 啟動類:@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class}) 3.2mysql-connector-java版本大于8.0
    3.3 activiit配置 spring: activiti: database-schema-update: true #是否每次都更新數(shù)據(jù)庫:自動更新數(shù)據(jù)庫結(jié)構(gòu) check-process-definitions : false # 默認(rèn)為true --activti是否自動部署:自動檢查、部署流程定義文件,就是在resource下的文件檢查并部署;如果是false就不會自動部署 history-level: full #歷史記錄存儲等級:full最高級別 db-history-used: true # activiti7增加的:默認(rèn)不生成歷史信息表,設(shè)置為true就生成歷史信息表 process-defintition-location-prefix: classpath:/processes/ #實際流程存放的位置--流程定義文件存放目錄 #定時事件配置 #啟用作業(yè)執(zhí)行器 async-executor-activate: true #啟用異步執(zhí)行器 job-executor-activate: true

4、Activiti7與SpringBoot整合后,默認(rèn)情況下,集成了SpringSecurity安全框架,因為 Activiti7 與 SpringBoot 整合后,默認(rèn)情況下,集成了 SpringSecurity 安全框架,這樣我們就要去 準(zhǔn)備 SpringSecurity 整合進(jìn)來的相關(guān)用戶權(quán)限配置信息。
可以查看一下整合 SpringBoot 的依賴包,發(fā)現(xiàn)同時也將 SpringSecurity 的依賴包也添加進(jìn)項目中了


image.png

5、因為 Activiti7 與 SpringBoot 整合后,默認(rèn)情況下,集成了 SpringSecurity 安全框架,這樣我們就要去 準(zhǔn)備 SpringSecurity 整合進(jìn)來的相關(guān)用戶權(quán)限配置信息。
可以查看一下整合 SpringBoot 的依賴包,發(fā)現(xiàn)同時也將 SpringSecurity 的依賴包也添加進(jìn)項目中了,
5.1 添加 SecurityUtil 類
添加 SecurityUtil 類。 為了能夠快速實現(xiàn) SpringSecurity 安全框架的配置,所添加的一個組件。


image.png

5.2 添加 SecurityConfig 類
配置路由攔截策略 表單登錄規(guī)則 注冊規(guī)則 認(rèn)證成功邏輯 ,認(rèn)證失敗邏輯。
本項目不涉及表單,故而不需引入;暫留備用;

5.3 啟動類


image.png

6、啟動實例


image.png

當(dāng)然除此配置之外還需要更新的就是表:
不同點:activiti6是28張數(shù)據(jù)表,activiti7是25張,少了用戶和組的三張表。相應(yīng)的服務(wù)接口也少了倆:IdentityService和FormService。另外activiti7中對activiti6的API再次進(jìn)行了封裝,新增加了分布式和云部署的功能,核心沒變

7、當(dāng)數(shù)據(jù)庫誤升級到了activiti7.0還是可以回退的回退腳本如下

ALTER TABLE act_ru_task DROP COLUMN BUSINESS_KEY_, DROP COLUMN APP_VERSION_;
ALTER TABLE act_ru_execution DROP COLUMN APP_VERSION_;
ALTER TABLE act_re_procdef DROP COLUMN APP_VERSION_;
ALTER TABLE act_re_deployment DROP COLUMN VERSION_, DROP COLUMN PROJECT_RELEASE_VERSION_;
-- 更新act_ge_property表
update act_ge_property set VALUE_ = 'create(6.0.0.4)' WHERE NAME_ = 'schema.history';
update act_ge_property set VALUE_ = '6.0.0.4' WHERE NAME_ = 'schema.version';
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容