乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       vnxy001 2019-03-21

      一. 背景

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

          activiti現在最高版本已經到7,springboot最高版本是6,由于網絡上5.22版本資料最多,所以選用了5.22版本作為項目集成。

      二. activiti自帶表介紹

          

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

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

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

      日志表:
      1. act_evt_log                        存儲事件處理日志,方便管理員跟蹤處理。
      通用數據表
      2. act_ge_bytearray               二進制數據表,一些文件存在這個表。
      3. act_ge_property                屬性數據表存儲整個流程引擎級別的數據,初始化表結構時,會默認插入三條記錄
      歷史數據表
      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                 歷史任務實例表
      11.act_hi_varinst                   歷史變量表
      用戶組織表
      12.act_id_group                    用戶組信息表
      13.act_id_info                       用戶擴展信息表
      14.act_id_membership         用戶與用戶組對應信息表
      15.act_id_user                      用戶信息表
      資源流程規(guī)則表
      16.act_procdef_info              流程定義信息
      17.act_re_deployment          部署信息表
      18.act_re_model                   流程設計模型部署表
      19.act_re_procdef                 流程定義數據表  
      運行時數據庫表
      20.act_ru_event_subscr       監(jiān)聽表
      21.act_ru_execution             運行時流程執(zhí)行實例表
      22.act_ru_identitylink           運行時流程人員表,主要存儲任務節(jié)點與參與者的相關信息
      23.act_ru_job                       運行時定時任務數據表
      24.act_ru_task                     運行時任務節(jié)點表
      25.act_ru_variable               運行時流程變量數據表

      三. activiti與springboot集成

          項目通過maven構建,所以去要引入activiti相關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。由于本項目使用了視圖的方式代替了原有的用戶組織表,所以這里設置為false,這樣啟動就不用去檢查用戶組織表是否存在。


      processEngineConfiguration.setDatabaseSchemaUpdate("true");

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

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

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

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

      四. activiti畫圖工具的集成

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

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

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

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

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

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

      如果在其他途徑畫的圖,比如eclipse,可以把相應的資源文件直接導入即可

      五. 官方畫圖工具的集成

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

      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 //啟用事務
      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. }

      總結

          流程引擎使用的時候會帶來便利性,但是使用不當也會帶來復雜度。

       

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多