Activiti7服務架構圖


Activiti 服務架構圖

  

 

 

   在新版本中,我們IdentityService,FormService 兩個Serivce 都已經刪除了。

1、activiti.cfg.xml

  activiti 的引擎配置文件,包括:ProcessEngineConfiguration 的定義、數據源定義、事務管理器等, 此文件其實就是一個 spring 配置文件,下面是一個基本的配置只配置了 ProcessEngineConfiguration 和數據源:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/contex
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!--數據源-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/activiti"/>
        <property name="username" value="root"/>
        <property name="password" value="123"/>
    </bean>

    <!--配置Activiti使用的processEngine對象   默認命名為processEngineConfiguration-->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!--注入數據源-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置數據源方式二:-->
        <!--<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>-->

        <!--指定數據庫生成策略-->
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
</beans>

2、ProcessEngineConfiguration流程引擎的配置類

  通過ProcessEngineConfiguration  可以創建工作流引擎ProceccEngine,常用的方法如下:

2.1 StandaloneProcessEngineConfiguration

  通過org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;

  Activiti可以單獨運行,使用它創建的ProcessEngine,Activiti會自己處理事務;

  配置文件方式如下:

    通過在activiti.cfg.xml配置文件中頂一個id為processEngineConfiguration的bean,這里會使用spring的依賴注入來構建引擎;

    <!--配置Activiti使用的processEngine對象   默認命名為processEngineConfiguration-->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!--注入數據源-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置數據源方式二:-->
        <!--<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>-->

        <!--指定數據庫生成策略-->
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>

2.2 SpringProcessEngineConfiguration

  通過org.activiti.spring.SpringProcessEngineConfiguration與spring整合;

  創建spring與activiti的整合配置文件:

  activiti-spring.cfg.xml(名稱不固定)

2.3 創建processEngineConfiguration

    public static void main(String[] args) {
        //加載配置
        ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        //獲取ProcessEngine對象
        ProcessEngine processEngine = configuration.buildProcessEngine();
    }

3、ProcessEngine

  工作流引擎,相當於一個門面接口,通過ProcessEngineConfiguration創建ProcessEngine,通過ProcessEngine創建各個service接口;

3.1 一般創建方式

  //獲取ProcessEngine對象
  ProcessEngine processEngine = configuration.buildProcessEngine();

3.2 簡單創建方式

  將activiti.cfg.xml文件名及路徑固定,且activiti.cfg.xml文件中有processEngineConfiguration的配置,可以使用如下代碼創建processEngine;

    //獲取ProcessEngine
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

4、service

4.1 service創建方式

  通過ProcessEngine創建service,service是工作流引擎提供用於進行工作部署,執行,管理的服務接口;

  方式如下:

   //獲取RepositoryService對象進行流程部署
   RepositoryService repositoryService = processEngine.getRepositoryService();
   //獲取RuntimeService對象
   RuntimeService runtimeService = processEngine.getRuntimeService();
   //獲取TaskService對象進行流程部署
   TaskService taskService = processEngine.getTaskService();  

4.2 service總覽

  

4.3 RepositoryService 

  是activiti的資源管理類,提供了管理和控制流程發布包和流程定義的操作;使用工作流建模工具設計的業務流程圖需要使用此service將流程定義文件的內容部署到計算機;

  除了部署流程定義以外還可以:查詢引擎中的發布包和流程定義;

  暫停或激活發布包,對應全部和特定流程定義;暫停意味着他們不能再執行任何操作了,激活是對應的反向操作;

  獲得多種資源,像是包含在發布包里的文件,或引擎自動生成的流程圖;獲得流程定義的pojo版本,可以用來通過java解析流程,而不必通過xml;

4.4 RuntimeService

  它是activiti的流程運行管理類;可以從這個服務類中獲取很多關於流程執行相關的信息;

4.5 TaskService

  它是activiti的任務管理類,可以從這個類中后去任務的信息;

4.6 HistoryService

  它是activiti的歷史管理類,可以查詢歷史信息,執行流程時,引擎會保存很多數據(根據配置),比如流程實例啟動時間,任務的參與者,完成任務的時間,每個流程實例的執行路徑等等,這個服務主要通過查詢功能來獲取這些數據;

4.7 ManagementService

  它是activiti的引擎管理類,提供了對activiti流程引擎的管理和維護功能,這些功能不在工作流驅動的應用程序中使用,主要用於activiti系統的日常維護;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM