zoukankan      html  css  js  c++  java
  • activiti基本介绍

    由于新项目要用到工作流,之前也没接触过,这几天就学了学工作流Activiti。好记性不如烂笔头,在这里记录一下,以后也可以回过头看一看。

    概念:我的理解是通过定义流程,启动流程,执行流程等一系列操作,实现业务逻辑。在定义好流程后,会产生两个文件分别是*.bpmn和*.png。

    应用场景:比如常见的请假,正规一点的,可能需要好几级领导审批,或者根据不同的请假天数,对应不同的领导签字(后面会发现有了排他网关,实现很方便);费用报销、会议的多人会签等等,都是可以使用工作流来完成。

    数据库的支持: activiti的后台是有数据库的支持,所有的表都是以ACT_开头的,第二部分表示表的用途的两个字母标识,用途也和服务的API对应。

    下面这些我就直接截图了,码字的话,太多了。网上也都能看到这些表的说明。

     

    表的生成:

    有两种方式,(1)通过Java代码实现。(2)通过配置文件实现。这里附上如何配置的(参考b站上面的视频资源),一般都是用配置来实现。

    <!-- 
            ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
            //连接数据库的配置
            processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
            processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/itcast0711activiti?useUnicode=true&characterEncoding=utf8");
            processEngineConfiguration.setJdbcUsername("root");
            processEngineConfiguration.setJdbcPassword("root");
            
            /**
                 public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自动创建表,需要表存在
                  public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除表再创建表
                  public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自动创建表
             */
            processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
         -->
        <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
            <!-- 连接数据的配置 -->
            <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=utf8"></property>
            <property name="jdbcUsername" value="root"></property>
            <property name="jdbcPassword" value="123456"></property>
            <!-- 没有表创建表 -->
            <property name="databaseSchemaUpdate" value="true"></property>
        </bean>

    重点来了!!! 重点来了!!!重点来了!!!

    activiti的核心就是ProcessEngine流程引擎对象,所有的操作,都是通过流程引擎来实现的,本篇就讲述几个常用Api。

    (1)ProcessEngine(核心)

    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

    (2)RepositoryService(规则相关)

     RepositoryService repositoryService = processEngine.getRepositoryService();

    (3)RunTimeServicce(运行时)

    RuntimeService runtimeService = processEngine.getRuntimeService();

    (4)TaskService(用户任务)

    TaskService taskService = processEngine.getTaskService();

    (5)ProcessDefinition(流程定义对象)

    (6)ProcessInstance(流程实例)

    下一章我们再说这些api的具体应用。

  • 相关阅读:
    【java】对象赋值给另一个对象
    spring boot系列(五)spring boot 配置spring data jpa (查询方法)
    Spring Data JPA 查询
    Spring Data JPA 介绍
    OpenID简介
    OAUTH协议介绍
    URL encoding(URL编码)
    RESTful 介绍
    spring boot系列(四)spring boot 配置spring data jpa (保存修改删除方法)
    spring boot 启动报 java.lang.NoClassDefFoundError: ch/qos/logback/core/spi/LifeCycle 错误
  • 原文地址:https://www.cnblogs.com/wei-cy/p/12872319.html
Copyright © 2011-2022 走看看