• 学习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

  • 相关阅读:
    360浏览器自动填写用户名和密码、下拉框解决办法
    实用JAVA工具类网站
    JQuery中ajaxSubmit,在ie或360兼容,提交后台不能获得参数
    java中形参的可变参数的定义(如String... args) .
    用sqldeveloper连接数据库
    ORA-12541:TNS:无监听程序问题
    小工具:生成半透明背景色的 CSS 代码,不影响子元素透明度
    JQuery使用小结
    ajaxSubmit 在ie9或360兼容中,form下是空的
    ajax 跨域请求数据 jsonp 示例
  • 原文地址:https://www.cnblogs.com/-beyond/p/14017494.html
Copyright © 2020-2023  润新知