学习Activiti-各种Service

前言

  Activiti流程引擎包含了20多张表,在Activiti中就有25张表之多,而且表之间的关系也比较复杂,比如包含各种外键约束。

  按照传统的方式,有了数据库表后,就应该为每张表创建Model实体类,然后为其创建对应的DAO接口,然后再创建对应的Manager或者Service来实现对表数据的增删改查;

  但是按照传统方式的,就会有一个很严峻的问题,表的数量太多,并且关系复杂,还要兼顾流程引擎的处理方式,自己去搞一套,几乎不可能;

  其实不需要我们去创建实体类,然后创建DAO、Manager或者Service,因为Activiti已经把这些东西给搞好了,只需要调用即可。

 

Service总览

  可以通过创建的流程引擎对象,就能获取到各种Service,示例如下:

@Test
public void testGetService() {
    ProcessEngine defaultProcessEngine = ProcessEngines.getDefaultProcessEngine();
    
    // 通过调用ProcessEngine的getXxxService即可获取对应的Service
    ManagementService managementService = defaultProcessEngine.getManagementService();
    RepositoryService repositoryService = defaultProcessEngine.getRepositoryService();
    TaskService taskService = defaultProcessEngine.getTaskService();
    RuntimeService runtimeService = defaultProcessEngine.getRuntimeService();
    HistoryService historyService = defaultProcessEngine.getHistoryService();
    DynamicBpmnService dynamicBpmnService = defaultProcessEngine.getDynamicBpmnService();
}

  接下来大概介绍一下每个Service的功能,而详细的介绍则在使用的时候解释。

 

ManagementService

  ManagementService是一般用来对Activiti流程引擎的管理和维护。

 

RepositoryService

  从名字上可以看出来,repository,仓库、贮藏,对应到Activiti中,也就是“资源的管理”,比如流程定义的控制管理(发布、删除、挂起、激活....);

 

DynamicBpmnService

  RepositoryService可以用来部署流程定义(使用xml形式定义好的),一旦部署到Activiti(解析后保存到DB),那么流程定义就不会再变了,除了修改xml定义文件内容;

  而DynamicBpmnService就允许我们在程序运行过程中去修改流程定义,比如修改流程定义中的分配角色、优先级、流程流转的条件...

 

RuntimeService

  可以通过RuntimeService对流程实例进行相关的操作,比如管理流程实例的角色、分配人...以及执行信息的查询

  

TaskService

  TaskService可以对任务进行管理和查询。

 

HistoryService

  HistoryService提供了查询历史信息的功能,包括流程实例信息、参与者信息、完成时间....

 

  原文地址:https://www.cnblogs.com/-beyond/p/14017494.html

posted @ 2020-11-21 23:07  寻觅beyond  阅读(787)  评论(0编辑  收藏  举报
返回顶部