传智播客java学习 jbpm进阶
我今天学习了jbpm的知识:我做了简单的摘要:
流程图中的各种节点的作用及用法:
需要有不同类型(作用)的节点,才能设计出复杂的流程图。Jbpm有一套预先定义好的节点类型。如果不够用,也可以使用自定义节点进行扩展,以完成不同的流程的需要。不同的节点类型代表不同的行为。
每个流程都必须要有开始节点和结束节点。
预定义节点:
start-state,开始节点:标识流程开始、
end-state,结束节点:标识流程结束、
task-node,任务节点:可以放0个或多个任务、
decision,决策节点 :路径选择,只使用一个流转(叉路口)、
fork/join,分支节点/合并节点:可以分为多个并行执行的分支、
state,状态节点:等待。
还有mail-node、process-state、super-state等
每个节点都对应一个类(Jbpm的持久化类),都是org.jbpm.graph.def.Node的子类。节点都有名字、流转(end-state除外)。
start-state 节点:
开始节点:标识流程开始边界。开始状态有且只有一个,就是说流程中不能有任何transition指向开始节点。
创建新的流程实例后,就有一个对应的Token(RootToken,根令牌)指向start-state。并且处于等待状态,需要给Token发信号(signal)才能使流程继续执行。
signal属性:
task-node的signal属性:指定完成任务实例对执行流程的影响(发信号)。
(指定哪个任务实例完成后会发信号离开节点
属性可取的值:
last:默认值,当最后一个实例被完成时候发信号。当在这个入口没有任务被生成时候,流程继续执行(发信号)
first:当第一个实例被完成时候发信号。当在这个入口没有任务被生成时候,执行继续.
never:不管任务实例是否完成,都不发信号。
nsynchronized:进入节点后就发信号,不管任务是否没建立或有没有完成。就是说任务的执行和流程执行互不影响。
last-wait:当进入节点时没有任务实例被创建时,就会一直处于等待状态,直到任务实例被创建;创建任务实例后,就是当所有的实例都执行完成后发信号(和last一样了)。
进后节点后
If( taskInstance的数量 = 0 ){
Wait,直到创建任务实例
}
Signal = “last” first-wait: 和last-wait一样理解。
decision 节点:
决策节点:用于计算流向。在decision中使用DecisionHandler。或使用一个表达式,也是返回要使用的transition的n
相关文档:
我们都知道java、c#、vb等语言都有sleep暂停的函数,而JavaScript脚本没有类似的功能。
下面就是我的实现的方法:
<mce:script type="text/javascript"><!--
function test()
{
var s="javascript--暂停函数";
setTimeout(
function(){
eval(sleep(test)); //执行return之后的代码,也就是&ldq ......
在通读jdk源代码的时候发现许多java方法前都有native关键字修饰,最后得知native是与C++联合开发的时候用的,java自己开发不用。
使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java去调用。这些函数 ......
这是clone技术介绍的第一篇。本篇主要介绍对象clone技术的基本知识。
Clone基本知识储备
在Java里提到clone技术,就不能不提java.lang.Cloneable接口和含有clone方法的Object类。所有具有clone功能的类都有一个特性,那就是它直接或间接地实现了Cloneable接口。否则,我们在尝试调用clone()方法时,将会触发CloneNo ......
我今天学习了徐老师将的hibernate框架知识,我做了简单的笔记:
集合属性大致分为二种:
单纯的集合属性,像List,Set或数组等集合属性。
2,Map集合属性,每个属性值多有相对应的Key映射。
&nb ......