Spring Boot 2.x 整合Activiti 6/7 流程引擎

企業(yè)應用開發(fā)過程中不可避免的會遇到工作流,OA流程,審批流程等,activiti是一個開源的流程引擎,可以幫助我們處理更加復雜,并且更加可靠的流程實現(xiàn)。

Activiti 7

Activiti 7是目前最新的版本,對Spring Boot 2.x有著很好的支持,本文使用7.0.0.SR1。Activiti 7和Spring Boot整合非常簡單,直接引入一個starter即可。
pom.xml

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter</artifactId>
    <version>7.0.0.SR1</version>
</dependency>

引入后,配置application.yml

spring:
  activiti:
    #Activiti記錄歷史任務數(shù)據(jù)級別,full是最全的,方便日后查詢使用
    history-level: full
    #創(chuàng)建數(shù)據(jù)庫歷史數(shù)據(jù)表
    db-history-used: true

以上完成后,運行應用,只要你的應用有配置好的DataSource,啟動后會在數(shù)據(jù)庫創(chuàng)建一些Activiti的基礎數(shù)據(jù)表。大概是以下的樣子,每個表都有不同的用處。

Activiti數(shù)據(jù)表

Activiti 6

Activiti 6是一個很早期的版本了,目前已經不再維護,和Spring Boot 2.x兼容不是很好,但目前還在使用6.0.0的應該還有很多。整合Activiti 6其實也不難,稍微調整一下就可以用了。
pom.xml

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter-basic</artifactId>
    <version>6.0.0</version>
</dependency>

application.yml這個不用配置db-history-used: true,6.0.0默認就是true

spring:
  activiti:
    #Activiti記錄歷史任務數(shù)據(jù)級別,full是最全的,方便日后查詢使用
    history-level: full

完成上面后還不能啟動應用,會報錯,需要在Spring Boot啟動類注解上面,增加以下代碼,排除Activiti的安全配置org.activiti.spring.boot.SecurityAutoConfiguration。

@SpringBootApplication(exclude = SecurityAutoConfiguration.class)

現(xiàn)在還是不可以啟動應用,6.0.0默認會從classpath:/processes/掃描流程定義文件**.bpmn20.xml,"**.bpmn,所以需要先創(chuàng)建這個目錄,要不然會報目錄不存在的錯誤,為了確保能目錄生效,請至少在目錄放一個文件,甚至放一個空文件也可以(7版本沒有這個問題)。

現(xiàn)在,終于可以啟動應用了,啟動完成后同樣會在數(shù)據(jù)庫創(chuàng)建一些基礎表。

使用

Activiti經過上面步驟就算整合完成了,在代碼里面直接注入Activiti的服務實例就可以開心的玩耍了。ProcessEngine是Activiti的核心,可以用來控制Activiti的所有功能。Activiti 官方用戶手冊

@Autowired
private ProcessEngine processEngine;
@Autowired
private RepositoryService repositoryService;
@Autowired
private HistoryService historyService;
@Autowired
private TaskService taskService;
@Autowired
private RuntimeService runtimeService;

關鍵類

下面列出兩個關鍵的類,Activiti能夠自動初始化,加載配置全部在這兩個類中。

Activiti 7

ProcessEngineAutoConfiguration自動配置類

Activiti 6

DataSourceProcessEngineAutoConfiguration自動配置類


Activiti 7

使用環(huán)境變量,讓Spring Boot應用部署更加靈活

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容