• Activiti服务架构图


      

       在新版本中,我们通过实验可以发现IdentityService,FormService 两个Serivce 都已经删除了。

    1.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-wn"/>
            <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[] arrgs){
            //加载配置文件
            ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
            //获取对象
            ProcessEngine processEngine = configuration.buildProcessEngine();
        }

    3.ProcessEngine

      工作流引擎,相当于一个门面接口,通过ProcessEngineConfiguration创建ProcessEngine,通过ProcessEngine创建各个service接口;

      3.1 一般创建方式

            //获取对象
            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系统的日常维护;

        

  • 相关阅读:
    【Javascript】javascript学习 十六 JavaScript 事件
    【Javascript】javascript学习 十七/八/九 Try...Catch/Throw/OnError 语句
    【VB】VB ListView控件转载
    【VB6.0】VB常用术语/内部函数
    【Javascript】javascript学习 二十 JavaScript 特殊字符
    【VB】VB文件系统操作
    【C#】C#处理文本文件(转)
    【Javascript】javascript学习 十五 For...In 声明
    【C#】C#常用函數收集
    客户端和服务器端调用JavaScript函数
  • 原文地址:https://www.cnblogs.com/wnwn/p/12611824.html
Copyright © 2020-2023  润新知