传智播客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很简单,Object的equals实现也会非常简单,但是事实并不是你想象的这样,耐心的读完本文,你会发现你对Java了解的是如此的少。如果这篇文章是一份Java程序员的入职笔试,那么不知道有多少人会掉落到这样的陷阱中。原文转自http://www.artima.com/lejava/articles/equality.html 三位作者都是不同领 ......
在命令行界面用native2ascii工具
1.将汉字转为Unicode:
C:\Program Files\Java\jdk1.5.0_04\bin>native2ascii
测试
\u6d4b\u8bd5
2.将Unicode转换为汉字:
C:\Program Files\Java\jdk1.5.0_04\bin>native2ascii -reverse ......
public static void main(string[] args)
{
int[] arrayInt=new int[] {1,2,3,4,5}
ArrayList alist =ArrayList();
//方法一
foreach(int i in alist)
{
&nbs ......
我今天学习了徐老师将的hibernate框架知识,我做了简单的笔记:
集合属性大致分为二种:
单纯的集合属性,像List,Set或数组等集合属性。
2,Map集合属性,每个属性值多有相对应的Key映射。
&nb ......
因为即将要学习lucene,所以我提前预习了lucene的相关知识,
1,lucene是众多搜索引擎中的一个,就像持久层除了Hibernate外也有很多其它框架
一样。Lucene是一个开发工具包,我们可以使用他为应用程序添加全文检索的功能。
2,目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系
统的搜索功能。 ......