2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

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

 vnxy001 2019-03-21

一. 背景

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

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

二. activiti自帶表介紹

    

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

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

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

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

三. activiti與springboot集成

    項(xiàng)目通過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。由于本項(xiàng)目使用了視圖的方式代替了原有的用戶組織表,所以這里設(shè)置為false,這樣啟動(dòng)就不用去檢查用戶組織表是否存在。


processEngineConfiguration.setDatabaseSchemaUpdate("true");

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

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

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

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

四. activiti畫圖工具的集成

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

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

2. 可以引入官方的畫圖工具,然后進(jìn)行畫圖

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

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

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

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

五. 官方畫圖工具的集成

    上面給出了官方畫圖工具集成的博客,這里有幾個(gè)地方需要注意的,如果權(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啟動(dòng)的時(shí)候,需要加上@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é)

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

 

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多