zoukankan      html  css  js  c++  java
  • 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系统的日常维护;

  • 相关阅读:
    yocto/bitbake 学习资源
    QEMU/KVM学习资源
    ubuntu 中创建和删除用户
    git 重命名本地和远程分支
    Ubuntu 上搭建 FTP 服务器
    gdb 常见用法
    git log 显示与特定文件相关的 commit 信息
    基于 qemu system mode 运行 arm 程序
    基于 qemu user mode 运行 aarch64 程序
    checking in(airport)
  • 原文地址:https://www.cnblogs.com/dabrk/p/12613430.html
Copyright © 2011-2022 走看看