变相怪杰 发表于 2015-1-18 11:37:07

JAVA网站制作之JBoss jBPM 3.0进修条记仓酷云

但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net网页编程就不一样了,保持微软的一向风格,源代码不公开jBPM是对照盛行的事情流引擎之一。
供应对照天真的机制来完成事情流引擎。
jBPM的下载地点为:
http://www.jboss.com/products/jbpm/downloads能够下载到jBMP的开辟包、在jBoss服务器下的部署情况、和eclipse下的界说流程的工具。

jBMP3.0的文档在我看来有点复杂,
把文档重新看完,仍是有点无从动手的感到,
带的几个例子也绝对复杂,
先把触及的相干观点,按本人的了解收拾一下。另有值得一提的是,jBMP利用hiberanter来做耐久层,
也是进修hibernate的利用的好项目。

jBMP次要触及到以下观点:
processdefinition:事情流的流程的完全界说,包含节点和节点之间的走向等关头信息。一般以xml格局供应。
processinstance:是基于processdefination而天生的营业层的实例。当processinstancep创立今后,一个token就发生,代表流程的实行路径,并被界说到入手下手节点。
token:暗示了一个实行的路径,它是运转时发生的。
node:暗示流程中的一个节点。transition:联系关系两个节点,用于暗示节点的走向
signal:让一个token实行下一步。
当token进进到一个node时,node会被实行,并发生一些事务,好比进进、分开节点等,这也是实行营业逻辑的中央。事务由action来暗示。

再把本人做的一个复杂的例子贴下去:


[*]process-definition文件
<process-definitionname="DeclDefinition2">
<start-statename="start">
<transitionto="ComposeBatchValidate"/>
</start-state>
<statename="ComposeBatchValidate">
<eventtype="node-enter">
<actionclass="org.jbpm.tutorial.DeclComposeBatchAction"/>
</event>
<transitionto="FirstAudit"/>
</state>
<statename="FirstAudit">
<transitionto="end"/>
</state>
<end-statename="end"/>
</process-definition>


[*]将process-definition文件耐久化到数据库
InputStreamis=DeclBatchTest.class
.getResourceAsStream("DeclBillStats.xml");
ProcessDefinitionprocessDefinition=ProcessDefinition
.parseXmlInputStream(is);
JbpmSessionjbpmSession=jbpmSessionFactory.openJbpmSession();
jbpmSession.beginTransaction();
jbpmSession.getGraphSession().saveProcessDefinition(processDefinition);
jbpmSession.commitTransaction();
jbpmSession.close();


[*]天生一个新的processinstance
JbpmSessionjbpmSession=jbpmSessionFactory.openJbpmSession();
jbpmSession.beginTransaction();
ProcessDefinitionprocessDefinition=jbpmSession.getGraphSession()
.findLatestProcessDefinition("DeclDefinition2");

ProcessInstanceprocessInstance=newProcessInstance(processDefinition);
ContextInstancecontextInstance=
processInstance.getContextInstance();
contextInstance.setVariable("no","1234");
Tokentoken=processInstance.getRootToken();
//System.out.println(token.getNode().getName());
//token.signal();
//System.out.println(token.getNode().getName());
//token.signal();
//System.out.println(token.getNode().getName());
jbpmSession.getGraphSession().saveProcessInstance(processInstance);
jbpmSession.commitTransaction();
jbpmSession.close();
注重:个中的Context,是流程把持和营业逻辑层互换数据的体例。要互换的信息,能够保留在ContextInstance中,并在今后读取此processinstance时,及Action的完成类中失掉这些信息。


[*]读取已有的processinstance
JbpmSessionjbpmSession=jbpmSessionFactory.openJbpmSession();
jbpmSession.beginTransaction();
GraphSessiongraphSession=jbpmSession.getGraphSession();
ProcessDefinitionprocessDefinition=
graphSession.findLatestProcessDefinition("DeclDefinition2");
ListprocessInstances=
graphSession.findProcessInstances(processDefinition.getId());
System.out.println(processInstances.size());
for(inti=0;i<processInstances.size();i++){
ProcessInstanceprocessInstance=
(ProcessInstance)processInstances.get(i);
Tokentoken=processInstance.getRootToken();
token.signal();
System.out.println(token.getNode().getName());
ContextInstancecontextInstance=
processInstance.getContextInstance();
System.out.println(contextInstance.getVariable("no"));
jbpmSession.getGraphSession().saveProcessInstance(processInstance);
}
jbpmSession.commitTransaction();
jbpmSession.close();


[*]action的完成类
action要承继ActionHandler,并供应execute办法。如:
publicvoidexecute(ExecutionContextexecutionContext){
System.out.println("comein");
System.out.println(executionContext.getContextInstance().getVariable("no"));
}

关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。

若相依 发表于 2015-1-21 11:12:26

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

飘飘悠悠 发表于 2015-1-30 21:51:36

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

不帅 发表于 2015-2-5 15:26:14

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

只想知道 发表于 2015-2-8 12:20:16

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

冷月葬花魂 发表于 2015-2-10 22:57:28

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

愤怒的大鸟 发表于 2015-2-11 07:06:03

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

仓酷云 发表于 2015-3-1 23:28:07

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

活着的死人 发表于 2015-3-2 18:13:41

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

小女巫 发表于 2015-3-9 17:42:07

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

金色的骷髅 发表于 2015-3-17 00:09:30

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

山那边是海 发表于 2015-3-23 08:29:48

是一种突破用户端机器环境和CPU

深爱那片海 发表于 2015-3-23 18:00:34

是一种使用者不需花费很多时间学习的语言

小魔女 发表于 2015-3-26 15:34:37

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

飘灵儿 发表于 2015-4-1 11:11:16

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

若天明 发表于 2015-4-15 11:56:50

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

老尸 发表于 2015-4-16 17:10:33

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

兰色精灵 发表于 2015-4-17 08:34:28

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

再现理想 发表于 2015-4-24 05:55:33

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
页: [1]
查看完整版本: JAVA网站制作之JBoss jBPM 3.0进修条记仓酷云