JBPM与Spring集成开发指南_第1页
JBPM与Spring集成开发指南_第2页
JBPM与Spring集成开发指南_第3页
JBPM与Spring集成开发指南_第4页
JBPM与Spring集成开发指南_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JBPM与Spring集成开发指南 1 术语工作流:全部或者部分,由计算机支持或自动处理的业务过程。工作流管理系统统:工作流管管理系统是这这样的一个系系统,详细定定义、管理并并执行“workfflows”,系统通过过运行一些软软件来执行wworkfllows,这这些软件的执执行顺序由工工作流逻辑的的计算机表示示形式(计算算机化的业务务规则过程定义)驱动。工单:一次申请请的提交记录录,该记录具具有唯一性。工工单相关的概概念: l 工单管理理:对投诉工工单、建议工工单、座席建建议工单、业业务受理工单单等不同类型型的工单进行行派发、接收收处理、回复复等一系列工工单处理操作作。 l 工单统计计:对各种

2、处处理工单的数数量,类型进进行数据统计计和导出、报报表打印。 l 工单系统统管理:对工工单系统进行行管理,设置置相应的处理理部门、处理理人员和相应应的权限,规规定处理流程程。 l 工单日志志:记录工单单操作日志,有有效管理日志志的处理状况况和责任。 2 背景工作作流管理系统统一项快速发发展的技术,各各种行业渐渐渐的采用工作作流技术。工工作流技术的的主要特点是是:过程的自自动化处理,这这些过程包含含由人与以机机器为基础的的活动相结合合;特别是对对那些与ITT 应用程序序、工具交互互的过程,进进行自动化处处理。虽然,工工作流技术广广泛用于办公公环境中,例例如保险、银银行、法院和和行政管理等等,然而

3、工作作流技术,也也可以应用于于一些类型的的工业和制造造业。 3 概述在人人们日常生活活和工作中,都都将与工作流流程发生密切切的关系,“工作流”干预过程、业业务程序的自自动化处理,文文档、信息或或者任务按照照定义好的规规则在参与者者间传递,来来完成整个业业务目标或者者对整个业务务目标的完成成做贡献。应应用领域广泛泛,比如: l 公司或组组织内部请假假或休假流程程、通知分发发流程等 l 政府政策策审批流程、 l 网上书店店图书订阅流流程、发送流流程等 l 驾照学习习流程等等。同时,“工作流流”可能由手工工组织,实际际上,多数“工作流 ”都在IT系系统中进行组组织的,从而而对过程自动动化提供计算算机

4、支持。“工作流”采用计算机机化后,可以以大大提高工工作和生活的的效率,而信信息化过程中中,对于采用用的技术实现现方式的不同同,将直接影影响到信息化化的质量,包包括:开发成成本、维护成成本等。好的的工作流解决决方案,可以以大大提高业业务流程流转转效率、容易易扩展对新流流程的支持等等。JBPM是当前前优秀的开源源工作流引擎擎。本文档是是关于JBPPM与Sprring框架架集成分析文文档。包括:基本概念、设设计要点、常常见问题解答答、参考资源源等。本文主要介绍了了集成开发的的高级内容,基基础知识参见见:参考资料料本文档适合所有有计算机开发发人员。 4 基本概念念 4.1 什么是工作作流“工作流”干预

5、预过程、业务务程序的自动动化处理,文文档、信息或或者任务按照照定义好的规规则在参与者者间传递,来来完成整个业业务目标或者者对整个业务务目标的完成成做贡献。同同时,“工作流”可能由手工工组织,实际际上,多数“工作流 ”都在IT系系统中进行组组织的,从而而对过程自动动化提供计算算机支持,WWFMC把工工作定位在这这个方向上。“工作流”定义义:全部或者者部分,由计计算机支持或或自动处理的的业务过程。工作流经常与“过程重组(BBPRBusinness PProcesss Re-enginneerinng)”联系在一起起。BPR 是关于企业业(组织)核核心业务过程程的评估、分分析、模拟、定定义以及其后后

6、的操作实现现。尽管,不不是所有的BBPR都是采采用工作流实实现的,但工工作流技术是是最佳的方法法,主要因为为,工作流技技术提供了业业务过程逻辑辑与IT操作作支持的分离离,从而以后后可以修改过过程规则来重重定义业务过过程。相反,工工作流技术并并不只在BPPR中采用,例例如用于现有有的业务过程程中。“工作流管理系系统(WFMMSWorkfflow MManageement Systeem)”通过管理工工作活动序列列,调用与各各种活动步骤骤相关的人员员、IT资源源,对业务过过程提供自动动化处理。“工作流管理系系统”定义:工作作流管理系统统是这样的一一个系统,详详细定义、管管理并执行“workfflo

7、ws”,系统通过过运行一些软软件来执行wworkfllows,这这些软件的执执行顺序由工工作流逻辑的的计算机表示示形式(计算算机化的业务务规则过程定义义)驱动。每每个业务过程程都有一个生生命周期,从从几分钟到几几天(甚至数数月),由过过程的复杂性性与组成活动动的持续时间间来决定。有有多种方法实实现工作流管管理系统,使使用多种ITT和通讯组件件,运行环境境可以从一个个小的本地工工作组到企业业间。因此,WWFMC参考考模型从各种种角度考虑工工作流管理系系统,希望提提供各种不同同的实现技术术、运行环境境。尽管实现的方法法多种多样,但但所有的WFFMS都表现现出某种共同同的特性,这这为不同产品品间的集

8、成、协协同工作提供供了基础。参参考模型描述述了工作流系系统的一个公公共模型,并并且指出参考考模型如何能能使其与其他他各种不同的的实现方法相相关联。在最高层,所有有的WFMSS都相同的特特性,即为下下边的3个功功能提供支持持: 建立时期(BBuild-time)功功能,定义、模模拟工作流过过程,及其组组成活动。 运行时期(RRun-tiime)控制制功能,在运运行环境中管管理工作流过过程,管理不不同 运行时期与与用户、ITT应用程序(工工具)的交互互,来处理各各种活动的执执行。下图描述WFMMS的基本特特性,以及上上述功能间的的关系: 4.2 JBBPM 4.2.1 介绍jBPM iss a p

9、llatforrm forr execcutablle proocess languuages rangiing frrom buusinesss proocess managgementt (BPMM) oveer worrkfloww to sservicce orcchestrrationn. Theere arre manny proocess languuages. Eachh one is taargeteed towwards a speecificc funcction and aa speccific envirronmennt. jBBPM alllows all oof

10、theese prrocesss langguagess to bbe buiild naativelly on top oof onee singgle teechnollogy: the PProcesss Virrtual Machiine (PPVM). jBPM alreaady suupportts 3 vvery ddifferrent pprocesss lannguagees: jPPDL, WWS-BPEEL andd Seamm Pageeflow. Thiss mighht exppand iin thee futuure ass new proceess laangu

11、agges arre addded too our platfform. jBBPM(JBBoss BBusineess Prrocesss Manaagemennt业务流程程管理),它它是覆盖了业业务流程管理理、工作流、服服务协作等领领域的一个开开源的、灵活活的、易扩展展的可执行流流程语言框架架。 jPDL是是构建于jBBPM框架上上的流程语言言之一。在jjPDL中提提供了任务(ttasks)、待待处理状态 (waitt stattes)、计计时器(tiimers)、自自动处理(aautomaated aactionns)等术语,并并通过图型化化的流程定义义,很直观地地描述业务流流程。 jP

12、DL可可以部署于JJava语言言的任何应用用环境下,JJavaSEE Appllicatiion(Swwing/SSWT)、JJavaEEE Appllicatiion(Appplicaation Serveer) 。 4.2.2 jPDL分分发包组成目前jPDL的的最新版本是是3.2.22,您可以在在以下地址:http:/labbs.jbooss.coom/jboossjbppm/jpddl_dowwnloadds/获得官官方下载包。下下载包分为两两种,一种是是标准包(jjbpm-jjpdl-33.2.2.zip)只只有20M左右;一种是套件件包(jbppm-jpddl-suiite-3.2

13、.2.zzip)将近近80M。两者者最大的区别别是套装包自自带一个已经经配置好的jjboss服服务,下载解解压缩后,可可直接运行。 4.2.3 jPDLL的核心程序序包(jbppm-jpddl.jarr) 它是一个典型的的jar文件件,它涵盖对对流程定义和和运行时流程程实例上下文文环境的操作作API。在在最简化的业业务流程样例例中,jPDDL将流程定定义存储与XXML格式的的定义文件中中,在运行时时载入内存,在在内存里记录录完整的业务务实例和执行行过程的环境境变量,并完完成全部操作作。显然,在在实际应用中中,流程信息息必须被持久久化的存储于于数据库中。jjPDL使用用了Hibeernatee作

14、为其对象象持久化的AAPI。 4.2.4 Grapphicall Proccess DDesignner插件(jbpm-jpdl-desiggner-33.1.2.zip) 它是一个基于EEclipsse的图型编编辑插件。使使用它可以对对业务流程进进行可视化的的定制,而无无须手动编辑辑XML文件件。该插件还还提供了流程程定义上传功功能,可以将将新定义的流流程发布到在在线运行的jjPDL系统统上。 4.2.5 jPDL身身份包(jbbpm-iddentitty.jarr) 它它是jPDLL的一个轻量量级扩展包,简简单实现了组组Groupp、用户Usser、许可可权Permmissioon等用户身

15、身份认证和鉴鉴权机制。如如果您的应用用环境只需要要简单的用户户认证鉴权管管理,那么它它十分适合您您。 4.2.6 jPDLL Web控控制台(jbbpm-coonsolee.war) 它是一个标准WWeb应用(使使用了JSFF技术),提提供了对jPPDL平台执执行情况的监监控程序(对对jPDL数数据库的监控控)。管理员员可以通过该该程序方便的的维护jPDDL的数据库库,管理流程程定义和流程程实例的执行行情况。同时时,它还提供供了一个简单单的Gettting sstarteed DEMMO,方便初初学者了解jjPDL。 4.2.7 静态的流程程定义模型 流程定义实实体(Prooc

16、ess Definnitionn)编号 PD-0011 对象 流程定义实体体(Proccess DDefiniition) 描述 流程定义实体体是对一个流流程抽象的对对象化定义,如如图-0022。一套系统统中,用户可可以定义保存存多个流程定定义实体,如如:报销流程程定义、请假假流程定义、人人事录用流程程定义等。每每个流程定义义还可以有多多个不同的版版本,如:针针对同样的报报销流程可以以有修订前和和修订后的两两个流程定义义,同时存储储于jPDLL数库中。用用户可以通过过流程名称和和版本号获取取相应的流程程定义。在默默认请况下,系系统启用最新新的流程定义义。 Java对象 org.jbbpm.gr

17、raph.ddef.PrrocesssDefinnitionn 数据库表 JBPM_PPROCESSSDEFIINITIOON该表存储储流程定义的的通用信息,如如:流程名称称、版本号 表关联说明 JBPM_PPROCESSSDEFIINITIOON表中,每每条记录有自自己的数据库库流水号 ID_JBPPM_PROOCESSDDEFINIITION的的外键(Fooreignn Keyss):startsttate_ 同JBPMM_NODEE(流程结点点)表关联。此此外键指向流流程定义中的的起始结点IID 流程结点点(Nodee)编号 PD-0022 对象 流程结点(NNode)

18、描述 流程结点是对对流程中的过过程环节/行行为的抽象对对象化定义,如如图-0022中的每个方方框即代表一一个结点。结结点有两个主主要职责:一一,实现某个个指定行为,这这在jBPMM中就是执行行一段制定的的Java代代码;二,转转递、维持流流程的延续,直直至达到最终终结点。在jjPDL的结结点设计中,系系统开放了充充分的用户行行为模型,程程序员可以基基于这些行为为接口,实现现自定义的业业务功能。在在jPDL中中,系统预定定义了一系列列的Nodee类型,同时时也允许程序序员开发定义义自己的Noode类型。 Java对象 org.jbbpm.grraph.ddef.Noode 数据库表 JBPM_N

19、NODE该表表存储结点的的定义信息。 表关联说明 JBPM_NNODE表中中,每条记录录有自己的数数据库流水号号 ID_JBPPM_NODDE的外键(FForeiggn Keyys):processsdefinnitionn_ - 此此外键说明该该Node从从属的流程定定义对象IDD subproccessdeefinittion_- 此外键指指定了一个由由该Nodee发起的子流流程。在主流流程离开当前前结点之前,该该子流程必须须完成执行过过程。acttion_ - 此外键键指定该结点点动作类的IID supersttate_ - 该外键键是一个自关关联键,指向向结点的上级级父结点IDD。一个

20、子流流程中的多个个结点从属于于同一个父流流程结点。 decisioondeleegatioon_ 该外键指指定了结点委委派的判定类类ID(所谓谓委派判定类类是指根据用用户的业务逻逻辑,判定流流程的下一个个流向的Jaava Cllass) 流程转转向(Traansitiions)编号 PD-0033 对象 流程转向(TTransiitionss) 描述 流程转向是描描述流程中从从一个结点到到另一个结点点的状态转换换过程,因此此一个转向一一定有一个源源结点和一个个目标结点。 在jPDLL中trannsitioon的命名是是通产是唯一一的,结点依依靠trannsitioon的命名来来

21、区别到下一一结点的路径径,当一个NNode中存存在有多个同同名的traansitiion的时候候,第一个ttransiition将将会被选中。结结点转向的过过程中,排在在transsitionn列表第一位位置的即是默默认的traansitiion。 Java对象 org.jbbpm.grraph.ddef.Trransittion 数据库表 JBPM_TTRANSIITION该该表存储流程程定义中的转转向对象。 表关联说明 JBPM_TTRANSIITION表表中,每条记记录有自己的的数据库流水水号 ID_JBPPM_TRAANSITIION的外键键(Foreeign KKeys):proce

22、sssdefinnitionn_ - 该该外键指向ttransiition所所属的流程定定义对象IDD from_ - 该外键指指向trannsitioon的源结点点ID to_ -该外外键指向trransittion的目目标结点IDD 动作(AActionns)编号 PD-0044 对象 动作(Acttions) 描述 Actionns是指一系系列的在流程程事件中运行行的Javaa代码。流程程图是软件需需求的传达的的重要手段,但但它只是软件件需求的一个个投影,隐藏藏了很多技术术实现的细节节。Actiions则是是向流程图添添加技术实现现细节的一种种机制,它可可以很好的补补充和

23、修饰流流程图。这意意味着在不改改变流程图结结构的情况下下,可以将JJava的代代码与之关联联。Actiions通过过事件(Evvents)同同流程绑定,常常用的主要事事件包括:进进入结点、离离开结点、进进行转向。请请注意,同EEventss关联的Acctionss和处于Noode中的AActionns是有不同同的。处于EEventss中的Acttions是是通过事件触触发执行的,它它是典型的观观察者模式,是是无法影响流流程控制的流流向。而处于于Node中中的Actiion则要承承担起流程传传递的责任。此此外,Acttions是是可以命名的的。可以通过过Actioons的命名名在任何地方方引用该

24、Acctionss。命名的AActionns可以作为为主流程定义义的公用子元元素。这个功功能可以提高高对Actiions定义义的复用。 Java对象 org.jbbpm.grraph.ddef.Acction 数据库表 JBPM_AACTIONN该表存储流流程定义中的的动作对象。 表关联说明 JBPM_AACTIONN表中,每条条记录有自己己的数据库流流水号ID_ JBPM_AACTIONN的外键(FForeiggn Keyys):processsdefinnitionn_ - 指指明actiion所属的的流程定义IID event_ - 指明aactionn绑定的evvent IID act

25、ionddelegaation_ - 指明明actioon的委派对对象ID exceptiionhanndler_ - 指定定actioon的异常处处理ID referenncedacction_ - 指向向当前acttion引用用的actiion的IDD timeracction_ - 指向向当前acttion引用用的计时器aactionn 事件(Evvents)编号 PD-0055 对象 事件(Eveents) 描述 事件表示流程程执行中的某某个特定的时时刻。在流程程执行的过程程中,通过jjBPM的引引擎触发事件件,这通常发发生在jbppm计算后续续状态的时候候。事件总是是

26、和流程中的的元素绑定,这这些元素包括括:流程定义义(proccess ddefiniition)、流流程结点(nnode)、流流程转向(ttransiition)和和任务(taask)。不不同的元素会会触发不同的的事件,拿nnode元素素来说,有 node-enterr事件和noode-leeave事件件。事件是aactionn的钩子,一一个事件可以以回调一系列列的actiion。当jjBPM引擎擎触发事件的的时候,事件件中绑定的aactionn就会被执行行。在jBPPM中,事件件模型是可传传播的。一个个子元素触发发的事件,将将逐层向上传传播到顶层的的流程定义元元素。这样的的设计使得事事件可以

27、被集集中化处理。 Java对象 org.jbbpm.grraph.ddef. EEvent 数据库表 JBPM_EEVENT该该表存储流程程定义中的事事件对象,这这些事件与相相关的acttion绑定定。 表关联说明 JBPM_EEVENT表表中,每条记记录有自己的的数据库流水水号ID_ JBPM_EEVENT的的外键(Fooreignn Keyss):processsdefinnitionn_ - 指向eveent所属的的流程定义IID node_ - 指向eevent所所属的nodde ID transittion_ - 指向向eventt所属的trransittion IID task_

28、- 指向向eventt所属的任务务ID 任务(Taask)编号 PD-0066 对象 任务(Tassk) 描述 任务作为流程程定义中的一一部分,定义义了如何创建建任务实例(TTask iinstannces)以以及任务分配配。任务可以以在任务结点点(Taskk-Nodee)和流程定定义(proocess-definnitionn)两个地方方定义。通常常会在一个任任务结点中定定义一个或多多个的任务。在在这种情况下下,任务结点点表示在流程程中等待用户户处理的交互互操作。业务务流程会停留留在任务处,等等待用户完成成相应的操作作之后继续。任任务也可在流流程定义中声声明。通过任任务名,可

29、以以找到相应的的任务定义,并并引用他们。实实际上任何有有命名的任务务都可以通过过名字被引用用。在整个的的流程定义中中,任务名必必须是唯一的的。此外,还还可以给任务务设定优先级级,这些优先先级属性将成成为任务实例例化时的默认认设置。任务务实例可以在在之后的运行行中改变优先先级。. Java对象 org.jbbpm.taaskmgmmt.deff.Taskk 数据库表 JBPM_TTASK该表表存储流程定定义中声明的的任务对象。 表关联说明 JBPM_TTASK表中中,每条记录录有自己的数数据库流水号号ID_JBPM_TAASK的外键键(Foreeign KKeys):processsdefinn

30、itionn_ -指指向taskk所属的流程程定义ID taskmgmmtdefiinitioon_ - 指向tassk引用的TTaskMggmtDeffintioon对象IDD tasknodde_ - 指向tassk所属的任任务结点IDD startsttate_ -指向taask所属流流程的起始结结点ID assignmmentdeelegattion_ - 指定ttask委派派处理的cllass对象象的ID swimlanne_ - 指定tassk要授权的的swimllane(角角色)ID taskconntrolller_ - 指定一个个task赋赋值的委托类类 4.2.8 具体化的

31、流流程实例模型型流程实例中最重重要的三个对对象:流程实实例(Proocess Instaance)、令令牌(Tokken)、任任务实例(TTask IInstannce). 流程实例(PProcesss Insstancee)编号 PI-0011 对象 流程实例(PProcesss Insstancee) 描述 流程实例是流流程定义的运运行时状态,它它记录了一个个流程运行的的起始时间、结结束时间等状状态信息 Java对象 org.jbbpm.grraph.eexe.PrrocesssInstaance 数据库表 JBPM_PPROCESSSINSTTANCE该该表存储运行行时的

32、流程对对象信息。 表关联说明 JBPM_PPROCESSSINSTTANCE表表中,每条记记录有自己的的数据库流水水号 ID_JBPMM_PROCCESSINNSTANCCE的外键(FForeiggn Keyys):processsdefinnitionn_ - 该该流程实例对对应的流程定定义的ID roottokken_ - 该流程实实例引用的跟跟令牌 superprrocessstokenn_ - 如如果当前流程程是某个流程程实例的子流流程,则指向向该父流程的的ID 令牌(Tooken)编号 PI-0022 对象 令牌(Tokken) 描述 令牌代表一个个流程执行的的路径,

33、它维维护着流程定定义中各个结结点的指针,同同时记录了流流程当前执行行的位置。 Java对象 org.jbbpm.grraph.eexe.Tooken 数据库表 JBPM_TTOKEN该该表存储运行行时令牌对象象信息,它表表示当前流程程执行到的位位置。 表关联说明 JBPM_TTOKEN表表中,每条记记录有自己的的数据库流水水号ID_ JBPM_TOKENN的外键(FForeiggn Keyys):processsinstaance_ - 指指向该令牌所所属的流程实实例的ID。 subproccessinnstancce_ - 指向该令牌牌所属的子流流程实例IDD。 node_ - 令牌所所在(

34、所指向向的)的当前前节点ID. parent_ - 如果果当前令牌是是一个分支流流程或子流程程的令牌,则则该值指向其其父令牌IDD。 任务实例例(Taskk Insttance)编号 PI-0033 对象 任务实例(TTask IInstannce) 描述 一个任务实例例对象可以分分配给指定的的操作者处理理,当任务完完成后,将触触发流程继续续下行。任务务实例的生命命周期很简单单,生成实例例-开始始处理-任务结束。从从弹性设计考考虑出发,任任务的分配不不属于实例生生命周期的一一部分,任务务是否被分配配是不会影响响其生命周期期过程的。当当流程进入一一个任务结点点的时候,结结点上任务

35、被被实例化;用用户通过访问问系统的界面面组件,获取取自己的任务务列表,可以以进行任务委委派、处理或或直接结束任任务。任务实实例记录着任任务创建的时时间、结束时时间,这些信信息可以通过过TaskIInstannce对象中中的gettter方法获获取。一个任任务实例的结结束时间标识识它的完成,在在后绪的任务务查询中,该该实例不会被被取出,但实实例的记录仍仍保留于数据据库中。 Java对象 org.jbbpm.taaskmgmmt.exee.TaskkInstaance 数据库表 JBPM_ TASKIINSTANNCE该表存存储运行时任任务实例信息息。 表关联说明 JBPM_ TASKIINSTA

36、NNCE表中,每每条记录有自自己的数据库库流水号IDD_JBPMM_ TASSKINSTTANCE的的外键(Fooreignn Keyss):task_ - 指向定义义该实例的任任务ID token_ - 指向任任务实例对应应的令牌IDD swimlanneinsttatncee_ - swimllane 实实例,表示处处理该任务的的角色 taskmgmmtinsttance_ - 管理该任务务的模块实例例ID 4.3 SppringSpring Frameework 是一个 JJava/JJava EEE/.NEET 的分层层应用程序框框架。该框架架基于 Exxpert One-oon-On

37、ee Javaa EE DDesignn and Devellopmennt(ISBBN 0-77645-44385-77)一文中的的代码,并最最初由 Rood Johhnson 和 Jueergen Hoelller ett al 开开发。Sprring FFramewwork 提提供了一个简简易的开发方方式,这种开开发方式,将将避免那些可可能致使底层层代码变得繁繁杂混乱的大大量的属性文文件和帮助类类。 Sprring 中中包含的关键键特性: 强大的基于于 JavaaBeanss 的采用控控制翻转(IInverssion oof Conntrol,IIoC)原则则的配置管理理,使得应用用程序

38、的组建建更加快捷简简易。 一个可用于于从 appplet 到到 Javaa EE 等等不同运行环环境的核心 Bean 工厂。 数据库事务务的一般化抽抽象层,允许许插件式事务务管理器,简简化事务的划划分使之与底底层无关。 内建的针对对 JTA 和 单个 JDBC 数据源的一一般化策略,使使 Spriing 的事事务支持不要要求 Javva EE 环境,这与与一般的 JJTA 或者者 EJB CMT 相相反。 JDBC 抽象层提供供了有针对性性的异常等级级(不再从SSQL异常中中提取原始代代码), 简简化了错误处处理, 大大大减少了程序序员的编码量量. 再次利利用JDBCC时,你无需需再写出另一一

39、个 终止止 模块. 并且面向向JDBC的的异常与Sppring 通用数据访访问对象 (Data Accesss Objject) 异常等级相相一致. 以资源容器器,DAO 实现和事务务策略等形式式与 Hibbernatte,JDOO 和 iBBATIS SQL MMaps 集集成。利用众众多的翻转控控制方便特性性来全面支持持, 解决了了许多典型的的Hiberrnate集集成问题. 所有这些全全部遵从Sppring通通用事务处理理和通用数据据访问对象异异常等级规范范. 灵活的基于于核心 Sppring 功能的 MMVC 网页页应用程序框框架。开发者者通过策略接接口将拥有对对该框架的高高度控制,因

40、因而该框架将将适应于多种种呈现技术,例例如 JSPP,FreeeMarkeer,Vellocityy,Tilees,iTeext 以及及 POI。值值得注意的是是,Spriing 中间间层可以轻易易地结合于任任何基于 MMVC 框架架的网页层,例例如 Strruts,WWebWorrk,或 TTapesttry。 提供诸如事事务管理等服服务的面向方方面编程框架架。 4.4 Sppring ModullesSpring Modulles iss a suub-prooject of Sppring intennded tto easse inttegrattion wwith 33rd paar

41、ty pproduccts wiithoutt overrloadiing thhe corre fraameworrk witth addditionnal deependeenciess.The moddules incluuded iin thee 0.9 releaase arre:Ant inttegrattion. Flux suuite oof prooductss inteegratiion. HiveMinnd inttegrattion. Lucene integgratioon. Apache OJB iintegrrationn. O/R Brooker iintegr

42、rationn. OSWorkfflow iintegrrationn. Tapestrry inttegrattion. Supportt for declaarativve cacching serviices iincludding EEHCachhe, JCCS, OSSCachee, GiggaSpacces annd othhers. Supportt for db4o Supportt for JSR-994 Rulles Ennginess suchh as DDroolss and Jess Supportt for varioous Jaakartaa Commmons c

43、componnents such as Coonfiguuratioon, Laang, CChain and CCommonns Vallidatoor Supportt for JavaSSpacess, inccludinng Giggaspacces annd Bliitz. Supportt for jBPM 3.0.xx and 3.1.xx Supportt for JSR-1170 (JJava CContennt Reppositoory) iincludding JJackraabbit and JJeceirra. Supportt for web ttemplaate

44、ennginess likee Freeemarkeer, Grroovy, Veloocity, WebMMacro and XXSLT. Valang: Valiidatioon Lannguagee. Bean Vaalidattion FFramewwork. Spring MVC aadd-onns. XT Frammeworkk: Dommain-DDrivenn Desiign orrienteed fraameworrk andd Spriing MVVC AJAAX suppport for ddevelooping richeer dommain mmodelss and

45、richeer useer intterfacces. 5 集成 55.1 Introoductiionj jBPM modulle offfers iintegrrationn betwween tthe Sppring and jjBPM aallowiing foor reuuse off Spriings Hiberrnate suppoort allong wwith tthe IooC conntaineer. Thhe moddule aallowss jBPMMs unnderlyying HHibernnate ssessioonFacttory tto be confiig

46、uredd throough SSpringg and jBPM actioons too acceess Spprings conntext. 5.2 CoonfiguuratioonUsers ffamiliiar wiith Sppring will see tthat tthe jBBPM moodule struccture resemmbles with the oorm paackagee fromm the main Sprinng disstribuution. The modulle offfers aa centtral ttemplaate cllass ffor wo

47、orkingg withh jBPMM, a ccallbaack too acceess thhe nattive JJbpmCoontextt and a loccal faactoryy beann for confiigurattion aand crreatinng a jjBPM iinstannce. . cllasspaath:/oorg/sppringmmodulees/worrkfloww/jbpmm31/soomeOthherWorrkfloww.xml sett The exaample abovee showws howw (exiistingg) Sprring-m

48、manageed Hibbernatte SesssionFFactorries aand trransacction managgementt can be reeused with jBPM. 5.3 LoocalJbbpmConnfigurrationnFactooryBeaanThe maiin eleement is LoocalJbbpmConnfigurrationnFactooryBeaan whiich shhould be faamiliaar to userss acusstomedd to SSpringg. Bassed onn the jbpm confiigura

49、ttion ffile aand thhe givven SeessionnFactoory, iit willl creeate aa jBPMM conffiguraation whichh can be ussed foor worrking with the ggiven proceess deefinittions. It iis posssiblee to rreplacce jBPPM xmll conffiguraation with jBPM 3.1.xx newlly addded ObbjectFFactorry - nnote tthat iif botth aree

50、pressent tthe xmml connfigurrationn is ppreffeered. LocallJbpmCConfigguratiionFacctoryBBean aallowss the creattion oof thee undeerlyinng schhema bbased on thhe proocess definnitionns loaaded aautomaaticallly att starrtup.Note thhat thhe sesssionFFactorry proopertyy is nnot maandatoory - Hiberrnate S

51、essiionFacctory can bbe reuused wwith jjBPM oor jBPPM cann workk by iitselff withhout aany inntegraation with the eexistiing innfrasttructuure. HHoweveer, inn mostt scennarioss, usiing LoocalJbbpmConnfigurrationnFactooryBeaan alllows oone too takee advaantagee of SSpringg trannsactiion maanagemment

52、iinfrasstructture sso its posssiblee withhout aany coode chhange to usse jBPPM, Hiibernaate annd jdbbc-bassed coode innside the ssame ttransaactionnal coontextt, be it maanagedd locaally oor glooballyy (JTAA). Mooreoveer, itt is ppossibble too use threaad-bouund seessionn or OOpenSeessionnInVieew pa

53、ttternss withh jBPMM.LocalJbbpmConnfigurrationnFactooryBeaan is also awaree of tthe ennclosiing appplicaationCContexxt liffecyclle - jjBPM wwill bbe iniitialiized oonce tthe coontextt is sstarteed (ussuallyy appllicatiion sttartupp) andd willl be cclosedd propperly when the ccontexxt is destrroyed (

54、appllicatiion iss shuttdown).Note thhat LoocalJbbpmConnfigurrationnFactooryBeaan cann be cconfiggured progrramatiicallyy and can bbe useed staandaloone onnly too builld an jBPM conteext whhich ccan bee usedd indeependeently of Sppring Modulles jBBPM suupportt. 5.4 Innversiion off Conttrol: JbpmTTemp

55、laate annd JbppmCalllbackAnotherr impoortantt featture oof Sprring MModulees jBPPM suppport is JbbpmTemmplatee. Thee tempplate offerrs verry connvientt wayss of wworkinng dirrectlyy withh proccess ddefiniitionss as wwell aas jBPPM APII takiing caare off handdling excepptionss (be it jBBPM orr Hibeer

56、natee baseed) inn resppect tto thee ongooing ttransaactionn (if its preseent), the uunderllying Hiberrnate sessiion (iif pessistennt serrvicess are used) and the jjBPM ccontexxt. jBBPM exxceptiions (and tthe unnderlyying HHibernnate iinformmationn) aree trannslateed intto Sprringss DAO excepption hi

57、eraarchy. Everrythinng happpens in a transsparennt andd conssistennt mannner.TThis iis posssiblee, as with everyy Spriing-sttyle ttemplaate,evven whhen diirect accesss to the nnativee JbpmmConteext iss desiired, throuugh thhe JbppmCalllback:public ProceessInsstancee finddProceessInsstancee(finaal Lo

58、nng proocessIInstannceId) returrn (PrrocesssInstaance) execuute(neew JbppmCalllback() ppublicc Objeect dooInJbppm(JbppmConttext ccontexxt) / ddo sommethinng reeturn conteext.geetGrapphSesssion().loaddProceessInsstancee(proccessInnstancceId.llongVaalue(); ); As welll, as LocallJbpmCConfigguratiionFac

59、ctoryBBean, the JJbpmTeemplatte cann be cconfiggured progrramatiicallyy and can bbe useed staandaloone onn a prre-exiistingg jbpmmConteext (cconfiggured throuugh LoocalJbbpmConnfigurrationnFactooryBeaan or not) and ccan bee usedd indeependeently of Sppring Modulles jBBPM suupportt. 5.5 PProcesssDefi

60、initioonFacttoryBeeanProcesssDefinnitionnFactooryBeaan is a simmple rreaderr thatt loadds jBPPM proocess definnitionn usinng Sprringss ResoourceLLoaderrs. Thhus, tthe xmml filles caan be load usingg the classspath, relaative or abbsolutte fille patth or even from the SServleet Conntext. See the ooff

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论