zoukankan      html  css  js  c++  java
  • Activiti入门 -- 环境搭建和核心API简介

    相关文章:

    《史上最权威的Activiti框架学习指南》

    《Activiti入门 -- 轻松解读数据库》

    本章内容,主要讲解Activiti框架环境的搭建,能够使用Activiti的API创建23张数据库表,正式开始Activiti之旅。

    在前一章,介绍了Activitie核心的数据库23张表的特征【数据库结构简介】,在这里我们就要把Activiti集成到我们工程中了。

    集成Activiti步骤如下:

    1、从官网下载Activti框架包;

    2、框架集成第一步都是导包,这些jar包可以在官方包下找到;

    由于Activiti使用了Spring框架的IOC机制,所以单独使用根目录下lib目录的包是不够的。

    但是可以在官方包中wars目录下的示例项目中获取。解压activiti-rest项目,导入activiti-rest项目中WEB-INFlib目录下所有包。添加到项目中。

    如果我们使用的是Mysql数据库,Mysql数据库的链接驱动Activiti官方包中并没有提供,需要我们自己导入。手动导入“mysql-connector-java.jar”,添加到工程中。

    3、新建测试类,创建Activiti核心对象PrcessEngine(流程引擎)的同时,数据库表也就自动创建了,测试代码如下:

     

    在Activiti中,在创建核心的流程引擎对象时会自动建表。如果程序正常执行,根据配置,数据库会自动建库,然后创建23张表。

    环境测试改进

    在Actiiti5中定制流程必定会操作到数据库,如果都像上面那样写一大段代码会非常麻烦,所以我们可以把数据库连接配置写入配置文件。

    在Activiti5的官方示例中并没有现成的配置文件,所以先得找到activiti-restWEB-INFclasses下有:

    activiti-context.xml:一个类似spring结构的配置文件,清空内容后改名为activiti.cfg.xml,用来做流程引擎的相关配置。

    按照上面代码配置ProcessEngineConfiguration对象,主要定义数据库的连接配置和建表策略,配置文件代码如下:

     

    Java代码如下:

     

    createProcessEngineConfigurationFromResource的参数值为我们添加的配置文件activiti.cfg.xml的名称,执行java代码,流程引擎对象创建成功运行后数据库会自动建表。

    核心API简介

    在环境搭建成功后,接下来就可以使用核心API做一些有意义的事情了。在这里先对核心API做一个简单介绍

    lProcessEngine

    说明:

    1.在Activiti中最核心的类,可以理解为服务Activiti的大管家,其他的类都是由他而来。

    2.产生方式:

    在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多。查看源码会发现:调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

    3.可以产生RepositoryService

    4.可以产生RuntimeService

    5.可以产生TaskService

    各个Service的作用:

    RepositoryService

    管理流程定义

    RuntimeService

    执行管理,包括启动、推进、删除流程实例等操作

    TaskService

    任务管理

    HistoryService

    历史管理(执行完的数据的管理)

    IdentityService

    组织机构管理

    FormService

    任务表单管理

    ManagerService

    定时器任务服务

    lRepositoryService

    是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。

    1.产生方式

    2.可以产生DeploymentBuilder,用来定义流程部署的相关参数

    3.删除流程定义

     

    lRuntimeService

    是Activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。

    lTaskService

    是Activiti的任务服务类。可以通过这个服务类中对流程任务进行操作。

    lProcessDefinition

    流程定义类。用语描述流程规则的对象。可以从这里获得资源文件等。

    lExecution

    Activiti用这个对象去描述流程执行的每一个活动节点。在没有并发的情况下,同ProcessInstance。

    lProcessInstance

    代表按照流程规则启动的一次执行实例。如:小强开始请假,那么系统就会为他单独创建一个流程实例。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。

    如图为ProcessInstance的源代码:

     

    从源代码中可以看出ProcessInstance就是Execution。但在现实意义上有所区别:

    在单线流程中,如上图的贷款流程,ProcessInstance与Execution是一致的。

    这个例子有一个特点:wire money(汇钱)和archive(存档)是并发执行的。 这个时候,总线路代表ProcessInstance,而分线路中每个活动代表Execution。

  • 相关阅读:
    VM虚拟机Linux和主机数据传输
    Linux CentOS 虚拟机下联网
    SQL 注入漏洞
    BurpSuite 各模块使用
    御剑指纹识别
    C#数组2(多维数组)
    C#数组1
    C#简单的枚举及结构
    ABAP性能1 | LOOP嵌套LOOP代码分析 (转)
    占位符使用(竖式计算)
  • 原文地址:https://www.cnblogs.com/itsource/p/4269545.html
Copyright © 2011-2022 走看看