Activiti服務架構圖


Activiti服務架構圖

 

 

   在新版本中,我們通過實驗可以發現IdentityService,FormService 兩個Serivce 都已經刪除了。

activiticfg.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>

ProcessEngineConfiguration流程引擎的配置類

通過ProcessEngineConfiguration可以創建工作流引擎ProceccEngine;

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>

SpringProcessEngineConfiguration

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

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

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

創建processEngineConfiguration

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

ProcessEngine

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

一般創建方式

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

簡單創建方式

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

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

service

service創建方式

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

  方式如下:

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

service總覽

 

 RepositoryService

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

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

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

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

 RuntimeService

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

TaskService

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

HistoryService

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

ManagementService

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

 


免責聲明!

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



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