日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

activiti5.22 springboot 流程引擎 實戰(zhàn)全過程

 vnxy001 2019-03-21

一. 背景

    現(xiàn)在很多項目流程上比較復(fù)雜,業(yè)務(wù)上不復(fù)雜,對于這種項目,引入流程引擎會比較合適,流程有流程引擎去做管理,讓設(shè)計更合理,開發(fā)更簡單。市面上有很多款流程引擎,本人選用了使用率比較廣的流程引擎activiti。

    activiti現(xiàn)在最高版本已經(jīng)到7,springboot最高版本是6,由于網(wǎng)絡(luò)上5.22版本資料最多,所以選用了5.22版本作為項目集成。

二. activiti自帶表介紹

    

    不同版本的activiti自帶表是不一樣的,其實我們也不用去關(guān)心不同版本的activiti需要那些表,只要配置好數(shù)據(jù)源,系統(tǒng)啟動的時候,會去檢查數(shù)據(jù)庫是否包含這些數(shù)據(jù)庫表,如果沒有會自動去創(chuàng)建這些表。下面先介紹簡單介紹一下,這些表的含義。

表含義介紹博客(引用):https://blog.csdn.net/jack_eusong/article/details/79411053

表關(guān)系圖介博客(引用):https://blog.csdn.net/claram/article/details/73277358

日志表:
1. act_evt_log                        存儲事件處理日志,方便管理員跟蹤處理。
通用數(shù)據(jù)表
2. act_ge_bytearray               二進制數(shù)據(jù)表,一些文件存在這個表。
3. act_ge_property                屬性數(shù)據(jù)表存儲整個流程引擎級別的數(shù)據(jù),初始化表結(jié)構(gòu)時,會默認插入三條記錄
歷史數(shù)據(jù)表
4. act_hi_actinst                    歷史節(jié)點表
5. act_hi_attachment             歷史附件表
6. act_hi_comment                歷史意見表
7. act_hi_detail                      歷史詳情表,提供歷史變量的查詢
8. act_hi_identitylink              歷史流程人員表
9. act_hi_procinst                  歷史流程實例表
10.act_hi_taskinst                 歷史任務(wù)實例表
11.act_hi_varinst                   歷史變量表
用戶組織表
12.act_id_group                    用戶組信息表
13.act_id_info                       用戶擴展信息表
14.act_id_membership         用戶與用戶組對應(yīng)信息表
15.act_id_user                      用戶信息表
資源流程規(guī)則表
16.act_procdef_info              流程定義信息
17.act_re_deployment          部署信息表
18.act_re_model                   流程設(shè)計模型部署表
19.act_re_procdef                 流程定義數(shù)據(jù)表  
運行時數(shù)據(jù)庫表
20.act_ru_event_subscr       監(jiān)聽表
21.act_ru_execution             運行時流程執(zhí)行實例表
22.act_ru_identitylink           運行時流程人員表,主要存儲任務(wù)節(jié)點與參與者的相關(guān)信息
23.act_ru_job                       運行時定時任務(wù)數(shù)據(jù)表
24.act_ru_task                     運行時任務(wù)節(jié)點表
25.act_ru_variable               運行時流程變量數(shù)據(jù)表

三. activiti與springboot集成

    項目通過maven構(gòu)建,所以去要引入activiti相關(guān)jar。

  1. <dependency>
  2. <groupId>org.activiti</groupId>
  3. <artifactId>activiti-spring-boot-starter-basic</artifactId>
  4. <version>5.22</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-jdbc</artifactId>
  9. </dependency>
  10. <dependency>
  11. <groupId>mysql</groupId>
  12. <artifactId>mysql-connector-java</artifactId>
  13. </dependency>

    在定義activiti配置

  1. @Component
  2. public class ActivitiConfig implements ProcessEngineConfigurationConfigurer {
  3. @Override
  4. public void configure(SpringProcessEngineConfiguration processEngineConfiguration) {
  5. processEngineConfiguration.setActivityFontName("宋體");
  6. processEngineConfiguration.setLabelFontName("宋體");
  7. processEngineConfiguration.setAnnotationFontName("宋體");
  8. processEngineConfiguration.setDbIdentityUsed(false);
  9. processEngineConfiguration.setDatabaseSchemaUpdate("true");
  10. }
  11. }

processEngineConfiguration.setDbIdentityUsed(false);     

這段代碼表示是否使用activiti自帶用戶組織表,如果是,這里為true,如果不是,這里為false。由于本項目使用了視圖的方式代替了原有的用戶組織表,所以這里設(shè)置為false,這樣啟動就不用去檢查用戶組織表是否存在。


processEngineConfiguration.setDatabaseSchemaUpdate("true");

這段代碼表示啟動的時候是否去創(chuàng)建表,如果第一次啟動這里必須設(shè)置為true

然后再springboot全局配置文件application.yml 配置,表示關(guān)閉驗證自動部署,不關(guān)閉每次啟動都會去部署resources/processes文件夾下面的所有資源文件

  1. spring:
  2. activiti:
  3. check-process-definitions: false

以上就是springboot和activiti的集成了,啟動springboot后,activiti也會相應(yīng)的運行起來。

四. activiti畫圖工具的集成

1. 可以在eclipse中集成Activiti Designer插件,然后可以進行畫圖

插件安裝博客(引用):https://www.cnblogs.com/strinkbug/p/4876819.html

2. 可以引入官方的畫圖工具,然后進行畫圖

官方的畫圖工具集成博客(引用):http:///activiti/126.html

個人建議引入官方畫圖工具,這樣畫圖信息是存在activiti自有表中,如果要發(fā)布也是比較簡單的,直接點擊發(fā)布即可。

點擊發(fā)布過,會在流程資源中出現(xiàn)相應(yīng)的資源信息

如果在其他途徑畫的圖,比如eclipse,可以把相應(yīng)的資源文件直接導(dǎo)入即可

五. 官方畫圖工具的集成

    上面給出了官方畫圖工具集成的博客,這里有幾個地方需要注意的,如果權(quán)限組件沒有集成spring-security,需要排除相關(guān)引用

  1. <dependency>
  2. <groupId>org.activiti</groupId>
  3. <artifactId>activiti-modeler</artifactId>
  4. <version>5.22</version>
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.springframework.security</groupId>
  8. <artifactId>spring-security-config</artifactId>
  9. </exclusion>
  10. <exclusion>
  11. <groupId>org.springframework.security</groupId>
  12. <artifactId>spring-security-crypto</artifactId>
  13. </exclusion>
  14. <exclusion>
  15. <groupId>org.springframework.security</groupId>
  16. <artifactId>spring-security-web</artifactId>
  17. </exclusion>
  18. </exclusions>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.activiti</groupId>
  22. <artifactId>activiti-diagram-rest</artifactId>
  23. <version>5.22</version>
  24. <exclusions>
  25. <exclusion>
  26. <groupId>org.springframework.security</groupId>
  27. <artifactId>spring-security-config</artifactId>
  28. </exclusion>
  29. <exclusion>
  30. <groupId>org.springframework.security</groupId>
  31. <artifactId>spring-security-crypto</artifactId>
  32. </exclusion>
  33. <exclusion>
  34. <groupId>org.springframework.security</groupId>
  35. <artifactId>spring-security-web</artifactId>
  36. </exclusion>
  37. </exclusions>
  38. </dependency>

且,springboot啟動的時候,需要加上@SpringBootApplication(exclude = SecurityAutoConfiguration.class)

  1. @SpringBootApplication(exclude = SecurityAutoConfiguration.class)
  2. @EnableAsync
  3. @EnableTransactionManagement //啟用事務(wù)
  4. @ComponentScan(basePackages = "yui")
  5. public class ActivitiWebApplication {
  6. public static void main(String[] args) {
  7. ApplicationContext app = SpringApplication.run(ActivitiWebApplication.class, args);
  8. SpringContextUtils.setApplicationContext(app);
  9. }
  10. }

總結(jié)

    流程引擎使用的時候會帶來便利性,但是使用不當(dāng)也會帶來復(fù)雜度。

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多