在Activiti中使用UUID作为主键生成策略

标签: activiti 中使 uuid | 发表时间:2013-08-30 15:00 | 作者:
出处:http://www.kafeitu.me/

1. 默认的主键生成策略

了解过Activiit表中数据的同学可能知道记录的主键ID是用自增的生成策略,这样的生成策略有两个优点:

  • 有顺序:所有引擎的表在插入新记录时全部使用同一个ID生成器
  • 便于记忆:因为是自增的所以有一定的顺序,便于记忆;例如业务人员让管理员删除一条数据(ID为5位左右的长度),管理员只要看一眼就可以记住

当然也有 缺点

  • 随着时间的推移或者数据量非常大自增的ID生成策略的“便于记忆”优势也就不存在了,因为ID的位数会逐步增加(举个例子,我们公司做的一个小系统,用户量在30人左右,ID的长度已经到了7位数)
  • 并发量高时会 可能导致主键冲突

在引擎初始化的时候会注册ID生成器,看过源码的同学还可能知道有一个类: org.activiti.engine.impl.db.DbIdGenerator,这个类实现了一个接口: org.activiti.engine.impl.cfg.IdGenerator

public interface IdGenerator {
  String getNextId();
}

该接口仅有一个方法,返回一个String类型的字符串,有兴趣的同学可以去看看引擎默认的生成器源码,接下来介绍如何更改引擎的主键生成器。

2. 更改默认的主键生成器

UUID是全球唯一的主键生成器,也是除自增策略之外最常用的一种,很幸运:引擎内置了UUID生成器实现。

要更改引擎默认的主键生成器很简单,只需要在配置引擎时覆盖一个属性即可,代码如下:



    

ID为“uuidGenerator”的bean对象就是引擎内部提供的UUID生成器,把Bean对象注册好以后覆盖引擎的“idGenerator”属性即可;再次启动系统后创建的新数据都会用UUID生成策略。

2.1 添加依赖

引擎提供的UUID生成器依赖fastxml的一个模块,需要在pom.xml(Maven工程)中添加如下依赖:


    com.fasterxml.uuid
    java-uuid-generator
    3.1.3

用UUID生成策略产生的ID

3. 自定义ID生成器

  • Step 1:创建一个类实现接口 org.activiti.engine.impl.cfg.IdGenerator
  • Step 2:参考本文第2部分 ^_^
转载自:

相关 [activiti 中使 uuid] 推荐:

在Activiti中使用UUID作为主键生成策略

- - 咖啡兔
了解过Activiit表中数据的同学可能知道记录的主键ID是用自增的生成策略,这样的生成策略有两个优点:. 有顺序:所有引擎的表在插入新记录时全部使用同一个ID生成器. 便于记忆:因为是自增的所以有一定的顺序,便于记忆;例如业务人员让管理员删除一条数据(ID为5位左右的长度),管理员只要看一眼就可以记住.

Activiti用户指南之Activiti的API

- - ITeye博客
 一、流程引擎的API和服务(services).      引擎的API是影响Activiti最常见的一种方法. 我们一开始最关注的中心是ProcessEngine,像之前描述的那样,流程引擎可以被多种方式创建. 从这个流程引擎里面,你能获得各个包含workflow/BPM方法的服务. 流程引擎和这些获得的服务是线程安全的.

Activiti学习笔记

- - 企业架构 - ITeye博客
第一个Activiti的HelloWorld. 获取核心ProcessEngine对象 2. 根据需求,获取对应的服务实例 3. 使用服务方法,做事情 * * @author Administrator * */ public class HelloWorld {. // 加载核心API ProcessEngine.

Activiti工作流demo

- - CSDN博客综合推荐文章
继上篇《 Activiti工作流的环境配置》.        前几篇对Activiti工作流进行了介绍,并讲解了其环境配置. 本篇将会用一个demo来展示Activiti工作流具体的体现,直接上干货.        以HelloWorld程序为例.       首先说一下业务流程,员工张三提交了一个申请,然后由部门经理李四审核,审核通过后再由总经理王五审核,通过则张三申请成功.

Activiti - 设置会签

- - 企业架构 - ITeye博客
前些天在群里聊工作流和Activiti,群里有人分享了自己的工作流引擎开源项目,大伙纷纷问这问那(比如为什么突然自己搞个process engine、有没有eclipse plugin、能不能绘制流程图等等). 现实生活中的工作流程,我们也经常碰到需要会签的情况,支持会签是很必要的. 正好有两个人问道:支持会签吗.

activiti工作流使用

- - 行业应用 - ITeye博客
activiti 开发流程. JBPM 与 Activiti. jBPM项目于2002年3月由Tom Baeyens发起,2003年12月发布1.0版本. 2004年10月18日,发布了2.0版本,并在同一天加入了JBoss. 2011 年 jBPM的创建者Tom Baeyens离开JBoss了, 他的离开产生了两个结果:.

ACTIVITI 学习笔记 - 监听

- - 企业架构 - ITeye博客
ACTIVITI 学习笔记 - 监听. 所有分发的事件都是org.activiti.engine.delegate.event.ActivitiEvent的子类. 监听器监听的流程引擎已经创建完毕,并准备好接受API调用. 监听器监听的流程引擎已经关闭,不再接受API调用. 创建了一个新实体,初始化也完成了.

Activiti安装配置(转)

- - 企业架构 - ITeye博客
原文地址:http://blog.csdn.net/zhang_xinxiu/article/details/38655311. 有一段时间没有更新文章了,虽然有一直在写文章,可是一直没有更新到博客内,这段时间写的文章大多还是以技术为主. 接下来的系列文章将会来讨论企业工作流的开发,主要是来研究开源工作流Activiti的使用.

Activiti入门篇之二 Spring 与Activiti的入门整合

- - 行业应用 - ITeye博客
Activiti相对Jbpm来说,与Spring整合更加完美,具体可见本文的详细介绍. 1.     Maven的环境任务,请参考第一篇 (Activiti入门篇—Maven的环境准备). 2.     Activiti的Eclipse插件安装.               插件更新地址:http://activiti.org/designer/update/.

整合activiti在线流程设计器(ACTIVITI-MODELER 5.18.0)

- - 企业架构 - ITeye博客
一直以来都是从事大量的工作流相关的项目,用过很多商用的工作流产品,包括国内与国外的,尽管商用的工作产品在UI操作上比较人性化,但个人用户觉得,这东西只需要一些初级用户,对于我们一直在为一些高级的客户提供一些专业的数据整合、流程梳理、系统间的数据穿透时,这些系统因为不开源,给项目的实施带来巨大的风险,在一些项目栽过跟头后,我更偏向于使用开源的平台了.