zoukankan      html  css  js  c++  java
  • Activiti 学习笔记记录

    官方在线用户手册(英文版):http://activiti.org/userguide/index.html

    中文用户手册:http://www.mossle.com/docs/activiti/index.html

    前言:目前在学习使用 Activiti,将学习过程中较重要的知识点或者遇到的问题与解决方案 记录下来,方便后来者学习与查询。

    一、项目框架介绍

      所有的测试都是依据在一定的环境框架上的。为了需要而测试。

      我这里选用的是 Spring + SpringMVC + Maven + mysql

      在项目中引入 Activiti,在pom 中添加,version 写实际版本(5.21.0) 

    <dependency>
      <groupId>org.activiti</groupId>
      <artifactId>activiti-engine</artifactId>
      <version>5.x</version>
    </dependency>
    

      

    二、数据库

    不管什么项目,数据库肯定是少不了的啦。

    下面列出Activiti使用的数据库类型(大小写敏感)。

    Activiti数据库类型JDBC URL实例备注
    h2 jdbc:h2:tcp://localhost/activiti 默认配置的数据库
    mysql jdbc:mysql://localhost:3306/activiti?autoReconnect=true 使用mysql-connector-java驱动测试
    oracle jdbc:oracle:thin:@localhost:1521:xe  
    postgres jdbc:postgresql://localhost:5432/activiti  
    db2 jdbc:db2://localhost:50000/activiti  
    mssql jdbc:sqlserver://localhost:1433/activiti  

     Activiti 自带了23张表,Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。

    • ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

    • ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

    • ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。

    • ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。

    • ACT_GE_*通用数据, 用于不同场景下。

    数据库脚本 是在 activiti-engine的jar 中(activiti-engine-x.jar), 在org/activiti/db/create包下(drop目录里是删除语句)

    执行 DbSchemaCreate 类的main方法

    正确配置Activiti的项目,启动的时候,如果事先数据库中不存在表的话,可以自动将对应版本的数据库表创建在数据库中。

    <!-- spring负责创建流程引擎的配置文件 -->
    	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    		<!-- 数据源 -->
    		<property name="dataSource" ref="dataSource" />
    		<!-- 配置事务管理器,统一事务 -->
    		<property name="transactionManager" ref="transactionManager" />
    		<!-- 设置建表策略,如果没有表,自动创建表 -->
    		<property name="databaseSchemaUpdate" value="true" />
    	</bean>
    

      

    三、日志

    在Activiti 5.12 开始,slf4j 作为日志框架。所有日志(activiti, spring, mybatis等等)都转发给SLF4J 允许使用你选择的日志实现。

    默认activiti-engine依赖中没有提供SLF4J绑定的jar, 需要根据你的实际需要使用日志框架。(如果不加也不会有任何提示,不会记录日志而已)

    常用的maven的pom配置为

    <!-- 在属性中添加版本号 -->
    <slf4j.version>1.7.21</slf4j.version>
    
    <!-- 依赖包 -->
    <dependency>
    	<groupId>org.slf4j</groupId>
    	<artifactId>slf4j-api</artifactId>
    	<version>${slf4j.version}</version>
    </dependency>
    <dependency>
    	<groupId>org.slf4j</groupId>
    	<artifactId>slf4j-log4j12</artifactId>
    	<version>${slf4j.version}</version>
    </dependency>
    <!-- common-logging 实际调用slf4j -->
    <dependency>
    	<groupId>org.slf4j</groupId>
    	<artifactId>jcl-over-slf4j</artifactId>
    	<version>${slf4j.version}</version>
    </dependency>
    <!-- java.util.logging 实际调用slf4j -->
    <dependency>
    	<groupId>org.slf4j</groupId>
    	<artifactId>jul-to-slf4j</artifactId>
    	<version>${slf4j.version}</version>
    </dependency>
    

      

    未完待续(……)

  • 相关阅读:
    NYOJ 38布线问题
    NYOJ 106背包问题
    基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题
    HDOJ 2546饭卡(01背包问题)
    FBI树-数据结构(二叉树)
    二叉树遍历(flist)(二叉树,已知中序层序,求先序)
    求先序排列(二叉树已知中序和后序,求先序)
    滑雪(dp)
    Python——plot可视化数据,作业8(python programming)
    数据库SQL语言学习----左外连接,右外连接,外连接,自然连接的形象对比
  • 原文地址:https://www.cnblogs.com/panie2015/p/5802996.html
Copyright © 2011-2022 走看看