文档章节

《Activiti实战》读书笔记——5.1.4

一万
 一万
发布于 2015/12/31 11:04
字数 403
阅读 70
收藏 2

5.1.4节给出了一个创建用户、组,并用完成用户任务的一个例子。

1、测试类继承了抽象类AbstractTest,它中有标注@BeforeClass、@AfterClass、@Before的注解:

@Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
@After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
@BeforeClass:针对所有测试,只执行一次,且必须为static void 
@AfterClass:针对所有测试,只执行一次,且必须为static void 

一个JUnit4的单元测试用例执行顺序为: 
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 
每一个测试方法的调用顺序为: 

@Before -> @Test -> @After; 


2、用@org.activiti.engine.test.Deployment注解导入bpmn文件:

@Deployment(resources = {"chapter5/candidateUserInUserTask.bpmn"})

起始路径是classpath,故上述导入文件应在classes/chapter5/candidateUserInUserTask.bpmn。

在自己敲代码的时候碰到无法导入bpmn文件的问题,经过测试后缀名是.bpmn和.bpmn20.xml的文件能正常导入,而.bpmn.xml的文件不能导入。看来后缀名不能随便写。


3、根据流程定义的ID启动一个流程实例:

    ProcessInstance processInstance =         runtimeService.startProcessInstanceByKey("candidateUserInUserTask");

参数是bpmn文件中 process元素的id属性。

而runtimeService还有startProcessInstanceById函数,很容易搞混。把candidateUserInUserTask当做参数调用此函数无法启动流程实例。百度知道上有人说是流程对象保存到数据表中的ID字段的值,而不是<process id="">的id属性值。待验证。

© 著作权归作者所有

共有 人打赏支持
一万
粉丝 28
博文 102
码字总数 173386
作品 0
朝阳
程序员
UNIX网络编程卷2进程间通信读书笔记汇总

UNIX网络编程卷2进程间通信读书笔记(一)—概述 http://blog.chinaunix.net/u/22935/article527112.html UNIX网络编程卷2进程间通信读书笔记(二)—管道 (1) http://blog.chinaunix.net/...

长平狐
2012/09/03
185
0
欢迎进入Hensen_的博客目录(全站式导航)

Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础 语法基础——C++语法基础 语法基础——Objective-C语法基础 语法基础——PHP语法基础 面试复...

qq_30379689
2016/09/23
0
0
activiti实战读书笔记——第十一章 事件

一、启动事件 每个流程都需要从启动事件开始,根据不同的需求有空启动、定时启动、异常启动和消息启动。 异常启动事件不能用于主流程,必须嵌入到事件子流程中。 1、定时启动事件 定时启动标...

一万
2016/01/31
498
2
activiti实战读书笔记——第十章 之 调用活动与事件子流程

1、调用活动是在一个流程中调用另一个独立的流程,这样可以到达流程的通用性的目的(被调用的流程可以在各处重复使用)。 使用callActiviti元素调用活动,属性calledElement的值定义了外部流...

一万
2016/01/29
279
0
activiti实战读书笔记——第九章 多实例

1、配置多实例的活动在流程运行时运行时顺序方式或并行放肆创建活动实例。 2、任务多实例 在任务中添加<multiInstanceLoopCharacteristics>元素来实现: <serviceTask id="servicetask1" nam...

一万
2016/01/20
187
0

没有更多内容

加载失败,请刷新页面

加载更多

Shiro | 实现权限验证完整版

写在前面的话 提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。 Shiro框架 1、Shiro是基于Apache开源的强大灵活的开源...

冯文议
今天
1
0
linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
15
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部