




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JBPM与与Spriing集成成开发指南南 1 术语语工作流:全部或者者部分,由由计算机支支持或自动动处理的业业务过程。工作流管理理系统:工工作流管理理系统是这这样的一个个系统,详详细定义、管理并执执行“workkflowws”,系统通通过运行一一些软件来来执行woorkfllows,这这些软件的的执行顺序序由工作流流逻辑的计计算机表示示形式(计计算机化的的业务规则则过程定定义)驱动。工单:一次次申请的提提交记录,该该记录具有有唯一性。工单相关关的概念: l 工单单管理:对对投诉工单单、建议工工单、座席席建议工单单、业务受受理工单等等不同类型型的工单进进行派发、接收处理理、回复等等一系列工工单
2、处理操操作。 l 工单单统计:对对各种处理理工单的数数量,类型型进行数据据统计和导导出、报表表打印。 l 工单单系统管理理:对工单单系统进行行管理,设设置相应的的处理部门门、处理人人员和相应应的权限,规规定处理流流程。 l 工单单日志:记记录工单操操作日志,有有效管理日日志的处理理状况和责责任。 2 背景景工作流管管理系统一一项快速发发展的技术术,各种行行业渐渐的的采用工作作流技术。工作流技技术的主要要特点是:过程的自自动化处理理,这些过过程包含由由人与以机机器为基础础的活动相相结合;特特别是对那那些与ITT 应用程程序、工具具交互的过过程,进行行自动化处处理。虽然然,工作流流技术广泛泛用于办
3、公公环境中,例例如保险、银行、法法院和行政政管理等,然然而工作流流技术,也也可以应用用于一些类类型的工业业和制造业业。 3 概述述在人们日日常生活和和工作中,都都将与工作作流程发生生密切的关关系,“工作流”干预过程程、业务程程序的自动动化处理,文文档、信息息或者任务务按照定义义好的规则则在参与者者间传递,来来完成整个个业务目标标或者对整整个业务目目标的完成成做贡献。应用领域域广泛,比比如: l 公司司或组织内内部请假或或休假流程程、通知分分发流程等等 l 政府府政策审批批流程、 l 网上上书店图书书订阅流程程、发送流流程等 l 驾照照学习流程程等等。同时,“工工作流”可能由手手工组织,实实际上
4、,多多数“工作流 ”都在ITT系统中进进行组织的的,从而对对过程自动动化提供计计算机支持持。“工作流”采用计算算机化后,可可以大大提提高工作和和生活的效效率,而信信息化过程程中,对于于采用的技技术实现方方式的不同同,将直接接影响到信信息化的质质量,包括括:开发成成本、维护护成本等。好的工作作流解决方方案,可以以大大提高高业务流程程流转效率率、容易扩扩展对新流流程的支持持等。JBPM是是当前优秀秀的开源工工作流引擎擎。本文档档是关于JJBPM与与Spriing框架架集成分析析文档。包包括:基本本概念、设设计要点、常见问题题解答、参参考资源等等。本文主要介介绍了集成成开发的高高级内容,基基础知识参
5、参见:参考考资料本文档适合合所有计算算机开发人人员。 4 基本本概念 44.1 什么是工工作流“工作流”干预过程程、业务程程序的自动动化处理,文文档、信息息或者任务务按照定义义好的规则则在参与者者间传递,来来完成整个个业务目标标或者对整整个业务目目标的完成成做贡献。同时,“工作流”可能由手手工组织,实实际上,多多数“工作流 ”都在ITT系统中进进行组织的的,从而对对过程自动动化提供计计算机支持持,WFMMC把工作作定位在这这个方向上上。“工作流”定义:全全部或者部部分,由计计算机支持持或自动处处理的业务务过程。工作流经常常与“过程重组组(BPRRBusiinesss Proocesss Re-
6、engiineerring)”联系在一起。BPR 是关于企业(组织)核心业务过程的评估、分析、模拟、定义以及其后的操作实现。尽管,不是所有的BPR都是采用工作流实现的,但工作流技术是最佳的方法,主要因为,工作流技术提供了业务过程逻辑与IT操作支持的分离,从而以后可以修改过程规则来重定义业务过程。相反,工作流技术并不只在BPR中采用,例如用于现有的业务过程中。“工作流管管理系统(WWFMSWorkkfloww Mannagemment Systtem)”通过管理理工作活动动序列,调调用与各种种活动步骤骤相关的人人员、ITT资源,对对业务过程程提供自动动化处理。“工作流管管理系统”定义:工工作流管
7、理理系统是这这样的一个个系统,详详细定义、管理并执执行“workkflowws”,系统通通过运行一一些软件来来执行woorkfllows,这这些软件的的执行顺序序由工作流流逻辑的计计算机表示示形式(计计算机化的的业务规则则过程定定义)驱动动。每个业业务过程都都有一个生生命周期,从从几分钟到到几天(甚甚至数月),由由过程的复复杂性与组组成活动的的持续时间间来决定。有多种方方法实现工工作流管理理系统,使使用多种IIT和通讯讯组件,运运行环境可可以从一个个小的本地地工作组到到企业间。因此,WWFMC参参考模型从从各种角度度考虑工作作流管理系系统,希望望提供各种种不同的实实现技术、运行环境境。尽管实现
8、的的方法多种种多样,但但所有的WWFMS都都表现出某某种共同的的特性,这这为不同产产品间的集集成、协同同工作提供供了基础。参考模型型描述了工工作流系统统的一个公公共模型,并并且指出参参考模型如如何能使其其与其他各各种不同的的实现方法法相关联。在最高层,所所有的WFFMS都相相同的特性性,即为下下边的3个个功能提供供支持: 建立时时期(Buuild-timee)功能,定定义、模拟拟工作流过过程,及其其组成活动动。 运行时时期(Ruun-tiime)控控制功能,在在运行环境境中管理工工作流过程程,管理不不同 运行时时期与用户户、IT应应用程序(工工具)的交交互,来处处理各种活活动的执行行。下图描述
9、WWFMS的的基本特性性,以及上上述功能间间的关系: 4.2 JBPMM 4.2.1 介绍jBPM is aa plaatforrm foor exxecuttablee proocesss lannguagges rrangiing ffrom busiinesss proocesss mannagemment (BPMM) ovver wworkfflow to sserviice oorcheestraationn. Thhere are manyy proocesss lannguagges. Eachh onee is targgetedd towwardss a sspeciifi
10、c funcctionn andd a sspeciific enviironmment. jBPPM alllowss alll of thesse prrocesss laanguaages to bbe buuild natiivelyy on top of oone ssinglle teechnoologyy: thhe Prrocesss Viirtuaal Maachinne (PPVM). jBPPM allreaddy suupporrts 33 verry diifferrent proccess langguagees: jjPDL, WS-BPELL andd Seaa
11、m Paagefllow. Thiss migght eexpannd inn thee futture as nnew pproceess llanguuagess aree addded tto ouur pllatfoorm. jBPMM(JBooss BBusinness Proccess Manaagemeent业务务流程管理理),它是是覆盖了业业务流程管管理、工作作流、服务务协作等领领域的一个个开源的、灵活的、易扩展的的可执行流流程语言框框架。 jPPDL是构构建于jBBPM框架架上的流程程语言之一一。在jPPDL中提提供了任务务(tassks)、待处理状状态 (wwait sta
12、ttes)、计时器(ttimerrs)、自自动处理(aautommatedd acttionss)等术语,并并通过图型型化的流程程定义,很很直观地描描述业务流流程。 jPPDL可以以部署于JJava语语言的任何何应用环境境下,JaavaSEE Appplicaationn(Swiing/SSWT)、JavaaEE AAppliicatiion(AAppliicatiion SServeer) 。 4.2.2 jPDLL分发包组组成目前jPDDL的最新新版本是33.2.22,您可以以在以下地地址:htttp:/jbosssjbppm/jppdl_ddownlloadss/获得官官方下载包包。下载
13、包包分为两种种,一种是是标准包(jbpmm-jpddl-3.2.2.zip)只有200M左右;一种是套套件包(jjbpm-jpdll-suiite-33.2.22.zipp)将近880M。两两者最大的的区别是套套装包自带带一个已经经配置好的的jbosss服务,下下载解压缩缩后,可直直接运行。 4.2.3 jPDDL的核心心程序包(jbpmm-jpddl.jaar) 它是一个典典型的jaar文件,它它涵盖对流流程定义和和运行时流流程实例上上下文环境境的操作AAPI。在在最简化的的业务流程程样例中,jjPDL将将流程定义义存储与XXML格式式的定义文文件中,在在运行时载载入内存,在在内存里记记录完
14、整的的业务实例例和执行过过程的环境境变量,并并完成全部部操作。显显然,在实实际应用中中,流程信信息必须被被持久化的的存储于数数据库中。jPDLL使用了HHiberrnatee作为其对对象持久化化的APII。 4.2.4 Graaphiccal PProceess DDesiggner插插件(jbbpm-jjpdl-desiignerr-3.11.2.zzip) 它是一个基基于Ecllipsee的图型编编辑插件。使用它可可以对业务务流程进行行可视化的的定制,而而无须手动动编辑XMML文件。该插件还还提供了流流程定义上上传功能,可可以将新定定义的流程程发布到在在线运行的的jPDLL系统上。 4.2
15、.5 jPDLL身份包(jbpmm-ideentitty.jaar) 它是jjPDL的的一个轻量量级扩展包包,简单实实现了组GGroupp、用户UUser、许可权PPermiissioon等用户户身份认证证和鉴权机机制。如果果您的应用用环境只需需要简单的的用户认证证鉴权管理理,那么它它十分适合合您。 4.2.6 jPDDL Weeb控制台台(jbppm-coonsolle.waar) 它是一个标标准Webb应用(使使用了JSSF技术),提提供了对jjPDL平平台执行情情况的监控控程序(对对jPDLL数据库的的监控)。管理员可可以通过该该程序方便便的维护jjPDL的的数据库,管管理流程定定义和流
16、程程实例的执执行情况。同时,它它还提供了了一个简单单的Getttingg staartedd DEMMO,方便便初学者了了解jPDDL。 4.2.7 静态的流流程定义模模型 4.2.7.1 流程定义义实体(PProceess DDefinnitioon)编号 PD-0001 对象 流程定义义实体(PProceess DDefinnitioon) 描述 流程定义义实体是对对一个流程程抽象的对对象化定义义,如图-002。一套系统统中,用户户可以定义义保存多个个流程定义义实体,如如:报销流流程定义、请假流程程定义、人人事录用流流程定义等等。每个流流程定义还还可以有多多个不同的的版本,如如:针对同同样
17、的报销销流程可以以有修订前前和修订后后的两个流流程定义,同同时存储于于jPDLL数库中。用户可以以通过流程程名称和版版本号获取取相应的流流程定义。在默认请请况下,系系统启用最最新的流程程定义。 Java对对象 org.jbpmm.graaph.ddef.PProceessDeefiniitionn 数据库表 JBPMM_PROOCESSSDEFIINITIION该表表存储流程程定义的通通用信息,如如:流程名名称、版本本号 表关联说明明 JBPMM_PROOCESSSDEFIINITIION表中中,每条记记录有自己己的数据库库流水号 ID_JJBPM_PROCCESSDDEFINNITIOON的
18、外键键(Forreignn Keyys):starttstatte_ 同同JBPMM_NODDE(流程程结点)表表关联。此此外键指向向流程定义义中的起始始结点IDD 4.2.7.2 流程结结点(Noode)编号 PD-0002 对象 流程结点点(Nodde) 描述 流程结点点是对流程程中的过程程环节/行行为的抽象象对象化定定义,如图图-0022中的每个个方框即代代表一个结结点。结点点有两个主主要职责:一,实现现某个指定定行为,这这在jBPPM中就是是执行一段段制定的JJava代代码;二,转转递、维持持流程的延延续,直至至达到最终终结点。在在jPDLL的结点设设计中,系系统开放了了充分的用用户行
19、为模模型,程序序员可以基基于这些行行为接口,实实现自定义义的业务功功能。在jjPDL中中,系统预预定义了一一系列的NNode类类型,同时时也允许程程序员开发发定义自己己的Nodde类型。 Java对对象 org.jbpmm.graaph.ddef.NNode 数据库表 JBPMM_NODDE该表存存储结点的的定义信息息。 表关联说明明 JBPMM_NODDE表中,每每条记录有有自己的数数据库流水水号 ID_JJBPM_NODEE的外键(FForeiign KKeys):proceessdeefiniitionn_ - 此外键说说明该Noode从属属的流程定定义对象IID subprrocess
20、sdeffinittion_- 此外外键指定了了一个由该该Nodee发起的子子流程。在在主流程离离开当前结结点之前,该该子流程必必须完成执执行过程。actiion_ - 此外外键指定该该结点动作作类的IDD superrstatte_ - 该外键键是一个自自关联键,指指向结点的的上级父结结点ID。一个子流流程中的多多个结点从从属于同一一个父流程程结点。 decissionddeleggatioon_ 该外键键指定了结结点委派的的判定类IID(所谓谓委派判定定类是指根根据用户的的业务逻辑辑,判定流流程的下一一个流向的的Javaa Claass) 4.2.7.3 流程程转向(TTranssitio
21、ons)编号 PD-0003 对象 流程转向向(Traansittionss) 描述 流程转向向是描述流流程中从一一个结点到到另一个结结点的状态态转换过程程,因此一一个转向一一定有一个个源结点和和一个目标标结点。 在jPDDL中trransiitionn的命名是是通产是唯唯一的,结结点依靠ttranssitioon的命名名来区别到到下一结点点的路径,当当一个Noode中存存在有多个个同名的ttranssitioon的时候候,第一个个trannsitiion将会会被选中。结点转向向的过程中中,排在ttranssitioon列表第第一位置的的即是默认认的traansittion。 Java对对象
22、org.jbpmm.graaph.ddef.TTranssitioon 数据库表 JBPMM_TRAANSITTION该该表存储流流程定义中中的转向对对象。 表关联说明明 JBPMM_TRAANSITTION表表中,每条条记录有自自己的数据据库流水号号 ID_JJBPM_TRANNSITIION的外外键(Fooreiggn Keeys):proceessdeefiniitionn_ - 该外键指指向traansittion所所属的流程程定义对象象ID from_ - 该该外键指向向trannsitiion的源源结点IDD to_ -该外键指指向traansittion的的目标结点点ID 4.2
23、.7.4 动作作(Acttionss)编号 PD-0004 对象 动作(AActioons) 描述 Actiions是是指一系列列的在流程程事件中运运行的Jaava代码码。流程图图是软件需需求的传达达的重要手手段,但它它只是软件件需求的一一个投影,隐隐藏了很多多技术实现现的细节。Actiions则则是向流程程图添加技技术实现细细节的一种种机制,它它可以很好好的补充和和修饰流程程图。这意意味着在不不改变流程程图结构的的情况下,可可以将Jaava的代代码与之关关联。Acctionns通过事事件(Evventss)同流程程绑定,常常用的主要要事件包括括:进入结结点、离开开结点、进进行转向。请注意,同
24、同Evennts关联联的Acttionss和处于NNode中中的Acttionss是有不同同的。处于于Evennts中的的Actiions是是通过事件件触发执行行的,它是是典型的观观察者模式式,是无法法影响流程程控制的流流向。而处处于Nodde中的AActioon则要承承担起流程程传递的责责任。此外外,Acttionss是可以命命名的。可可以通过AActioons的命命名在任何何地方引用用该Acttionss。命名的的Actiions可可以作为主主流程定义义的公用子子元素。这这个功能可可以提高对对Actiions定定义的复用用。 Java对对象 org.jbpmm.graaph.ddef.AA
25、ctioon 数据库表 JBPMM_ACTTION该该表存储流流程定义中中的动作对对象。 表关联说明明 JBPMM_ACTTION表表中,每条条记录有自自己的数据据库流水号号ID_ JBPMM_ACTTION的的外键(FForeiign KKeys):proceessdeefiniitionn_ - 指明acctionn所属的流流程定义IID eventt_ - 指明acctionn绑定的eeventt ID actioondellegattion_ - 指指明acttion的的委派对象象ID excepptionnhanddler_ - 指指定acttion的的异常处理理ID referre
26、nceedacttion_ - 指指向当前aactioon引用的的actiion的IID timerractiion_ - 指向向当前acctionn引用的计计时器acctionn 4.2.7.5 事件(EEventts)编号 PD-0005 对象 事件(EEventts) 描述 事件表示示流程执行行中的某个个特定的时时刻。在流流程执行的的过程中,通通过jBPPM的引擎擎触发事件件,这通常常发生在jjbpm计计算后续状状态的时候候。事件总总是和流程程中的元素素绑定,这这些元素包包括:流程程定义(pproceess ddefinnitioon)、流流程结点(nnode)、流程转向向(traans
27、ittion)和和任务(ttask)。不同的元元素会触发发不同的事事件,拿nnode元元素来说,有有 nodde-ennter事事件和noode-lleavee事件。事事件是acctionn的钩子,一一个事件可可以回调一一系列的aactioon。当jjBPM引引擎触发事事件的时候候,事件中中绑定的aactioon就会被被执行。在在jBPMM中,事件件模型是可可传播的。一个子元元素触发的的事件,将将逐层向上上传播到顶顶层的流程程定义元素素。这样的的设计使得得事件可以以被集中化化处理。 Java对对象 org.jbpmm.graaph.ddef. Evennt 数据库表 JBPMM_EVEENT该
28、表表存储流程程定义中的的事件对象象,这些事事件与相关关的acttion绑绑定。 表关联说明明 JBPMM_EVEENT表中中,每条记记录有自己己的数据库库流水号IID_ JBPMM_EVEENT的外外键(Fooreiggn Keeys):proceessdeefiniitionn_ - 指向eeventt所属的流流程定义IID node_ - 指向evvent所所属的noode IID transsitioon_ - 指向向evennt所属的的trannsitiion IID task_ - 指向eeventt所属的任任务ID 4.2.7.6 任务(TTask)编号 PD-0006 对象 任务
29、(TTask) 描述 任务作为为流程定义义中的一部部分,定义义了如何创创建任务实实例(Taask iinstaancess)以及任任务分配。任务可以以在任务结结点(Taask-NNode)和和流程定义义(proocesss-deffinittion)两两个地方定定义。通常常会在一个个任务结点点中定义一一个或多个个的任务。在这种情情况下,任任务结点表表示在流程程中等待用用户处理的的交互操作作。业务流流程会停留留在任务处处,等待用用户完成相相应的操作作之后继续续。任务也也可在流程程定义中声声明。通过过任务名,可可以找到相相应的任务务定义,并并引用他们们。实际上上任何有命命名的任务务都可以通通过名字
30、被被引用。在在整个的流流程定义中中,任务名名必须是唯唯一的。此此外,还可可以给任务务设定优先先级,这些些优先级属属性将成为为任务实例例化时的默默认设置。任务实例例可以在之之后的运行行中改变优优先级。. Java对对象 org.jbpmm.tasskmgmmt.deef.Taask 数据库表 JBPMM_TASSK该表存存储流程定定义中声明明的任务对对象。 表关联说明明 JBPMM_TASSK表中,每每条记录有有自己的数数据库流水水号ID_JBPM_TASKK的外键(FForeiign KKeys):proceessdeefiniitionn_ -指向taask所属属的流程定定义ID taskm
31、mgmtddefinnitioon_ - 指向ttask引引用的TaaskMggmtDeefinttion对对象ID tasknnode_ - 指指向tassk所属的的任务结点点ID starttstatte_ -指向taask所属属流程的起起始结点IID assiggnmenntdellegattion_ - 指指定tassk委派处处理的cllass对对象的IDD swimllane_ - 指指定tassk要授权权的swiimlanne(角色色)ID taskccontrrolleer_ - 指定一一个tassk赋值的的委托类 4.2.8 具体化的的流程实例例模型流程实例中中最重要的的三个对
32、象象:流程实实例(Prrocesss Innstannce)、令牌(TTokenn)、任务务实例(TTask Insttancee). 4.2.8.1 流程实例例(Proocesss Insstancce)编号 PI-0001 对象 流程实例例(Proocesss Insstancce) 描述 流程实例例是流程定定义的运行行时状态,它它记录了一一个流程运运行的起始始时间、结结束时间等等状态信息息 Java对对象 org.jbpmm.graaph.eexe.PProceessInnstannce 数据库表 JBPMM_PROOCESSSINSTTANCEE该表存储储运行时的的流程对象象信息。 表
33、关联说明明 JBPMM_PROOCESSSINSTTANCEE表中,每每条记录有有自己的数数据库流水水号 ID_JBBPM_PPROCEESSINNSTANNCE的外外键(Fooreiggn Keeys):proceessdeefiniitionn_ - 该流程实实例对应的的流程定义义的ID rootttokenn_ - 该流程实实例引用的的跟令牌 superrproccessttokenn_ - 如果当前前流程是某某个流程实实例的子流流程,则指指向该父流流程的IDD 4.2.8.2 令牌(TTokenn)编号 PI-0002 对象 令牌(TTokenn) 描述 令牌代表表一个流程程执行的路路
34、径,它维维护着流程程定义中各各个结点的的指针,同同时记录了了流程当前前执行的位位置。 Java对对象 org.jbpmm.graaph.eexe.TTokenn 数据库表 JBPMM_TOKKEN该表表存储运行行时令牌对对象信息,它它表示当前前流程执行行到的位置置。 表关联说明明 JBPMM_TOKKEN表中中,每条记记录有自己己的数据库库流水号IID_ JJBPM_TOKEEN的外键键(Forreignn Keyys):proceessinnstannce_ - 指向该令令牌所属的的流程实例例的ID。 subprrocesssinsstancce_ - 指向该该令牌所属属的子流程程实例IDD
35、。 node_ - 令牌所在在(所指向向的)的当当前节点IID. parennt_ - 如果当当前令牌是是一个分支支流程或子子流程的令令牌,则该该值指向其其父令牌IID。 4.2.8.3 任务实实例(Taask IInstaance)编号 PI-0003 对象 任务实例例(Tassk Innstannce) 描述 一个任务务实例对象象可以分配配给指定的的操作者处处理,当任任务完成后后,将触发发流程继续续下行。任任务实例的的生命周期期很简单,生生成实例开始始处理任务结结束。从弹弹性设计考考虑出发,任任务的分配配不属于实实例生命周周期的一部部分,任务务是否被分分配是不会会影响其生生命周期过过程的。
36、当当流程进入入一个任务务结点的时时候,结点点上任务被被实例化;用户通过过访问系统统的界面组组件,获取取自己的任任务列表,可可以进行任任务委派、处理或直直接结束任任务。任务务实例记录录着任务创创建的时间间、结束时时间,这些些信息可以以通过TaaskInnstannce对象象中的geetterr方法获取取。一个任任务实例的的结束时间间标识它的的完成,在在后绪的任任务查询中中,该实例例不会被取取出,但实实例的记录录仍保留于于数据库中中。 Java对对象 org.jbpmm.tasskmgmmt.exxe.TaaskInnstannce 数据库表 JBPMM_ TAASKINNSTANNCE该表表存储
37、运行行时任务实实例信息。 表关联说明明 JBPMM_ TAASKINNSTANNCE表中中,每条记记录有自己己的数据库库流水号IID_JBBPM_ TASKKINSTTANCEE的外键(FForeiign KKeys):task_ - 指指向定义该该实例的任任务ID tokenn_ - 指向任务务实例对应应的令牌IID swimllaneiinstaatncee_ - swiimlanne 实例例,表示处处理该任务务的角色 taskmmgmtiinstaance_ - 管理该该任务的模模块实例IID 4.3 SpriingSprinng Frramewwork 是一个 Javaa/Javva
38、EEE/.NEET 的分分层应用程程序框架。该框架基基于 Exxpertt Onee-on-One Javaa EE Desiign aand DDevellopmeent(IISBN 0-76645-44385-7)一文文中的代码码,并最初初由 Rood Joohnsoon 和 Juerrgen Hoelller et aal 开发发。Sprring Frammeworrk 提供供了一个简简易的开发发方式,这这种开发方方式,将避避免那些可可能致使底底层代码变变得繁杂混混乱的大量量的属性文文件和帮助助类。 SSprinng 中包包含的关键键特性: 强大的基基于 JaavaBeeans 的采用控
39、控制翻转(IInverrsionn of Conttrol,IIoC)原原则的配置置管理,使使得应用程程序的组建建更加快捷捷简易。 一个可用用于从 aappleet 到 Javaa EE 等不同运运行环境的的核心 BBean 工厂。 数据库事事务的一般般化抽象层层,允许插插件式事务务管理器,简简化事务的的划分使之之与底层无无关。 内建的针针对 JTTA 和 单个 JJDBC 数据源的的一般化策策略,使 Spriing 的的事务支持持不要求 Javaa EE 环境,这这与一般的的 JTAA 或者 EJB CMT 相反。 JDBCC 抽象层层提供了有有针对性的的异常等级级(不再从从SQL异异常中提
40、取取原始代码码), 简简化了错误误处理, 大大减少少了程序员员的编码量量. 再次次利用JDDBC时,你你无需再写写出另一个个 终止止 模块块. 并且且面向JDDBC的异异常与Sppringg 通用数数据访问对对象 (DData Acceess OObjecct) 异异常等级相相一致. 以资源容容器,DAAO 实现现和事务策策略等形式式与 Hiibernnate,JJDO 和和 iBAATIS SQL Mapss 集成。利用众多多的翻转控控制方便特特性来全面面支持, 解决了许许多典型的的Hibeernatte集成问问题. 所所有这些全全部遵从SSprinng通用事事务处理和和通用数据据访问对象象
41、异常等级级规范. 灵活的基基于核心 Spriing 功功能的 MMVC 网网页应用程程序框架。开发者通通过策略接接口将拥有有对该框架架的高度控控制,因而而该框架将将适应于多多种呈现技技术,例如如 JSPP,FreeeMarrker,VVeloccity,TTiless,iTeext 以以及 POOI。值得得注意的是是,Sprring 中间层可可以轻易地地结合于任任何基于 MVC 框架的网网页层,例例如 Sttrutss,WebbWorkk,或 TTapesstry。 提供诸如如事务管理理等服务的的面向方面面编程框架架。 4.4 Spriing MModullesSprinng Moodulee
42、s iss a ssub-pprojeect oof Sppringg inttendeed too easse inntegrratioon wiith 33rd ppartyy prooductts wiithouut ovverlooadinng thhe coore fframeeworkk witth addditiionall deppendeenciees.The mmodulles iincluuded in tthe 00.9 rreleaase aare:Ant iinteggratiion. Flux suitte off prooductts inntegrratioo
43、n. HiveMMind inteegrattion. Lucenne inntegrratioon. Apachhe OJJB inntegrratioon. O/R BBrokeer inntegrratioon. OSWorrkfloow inntegrratioon. Tapesstry inteegrattion. Suppoort ffor ddeclaaratiive ccachiing sserviices inclludinng EHHCachhe, JJCS, OSCaache, GiggaSpaaces and otheers. Suppoort ffor ddb4o S
44、uppoort ffor JJSR-994 Ruules Engiines suchh as Droools aand JJess Suppoort ffor vvarioous JJakarrta CCommoons ccompoonentts suuch aas Coonfiggurattion, Lanng, CChainn andd Commmonss Vallidattor Suppoort ffor JJavaSSpacees, iincluudingg Giggaspaaces and Blittz. Suppoort ffor jjBPM 3.0.x annd 3.1.x Su
45、ppoort ffor JJSR-1170 (Javaa Conntentt Repposittory) inccludiing JJackrrabbiit annd Jeeceirra. Suppoort ffor wweb ttempllate engiines likee Freeemarrker, Grooovy, Vellocitty, WWebMaacro and XSLTT. Valanng: VValiddatioon Laanguaage. Bean Valiidatiion FFrameeworkk. Sprinng MVVC addd-onns. XT Frramewwo
46、rk: Dommain-Drivven DDesiggn orrientted fframeeworkk andd Sprring MVC AJAXX suppportt forr devvelopping richher ddomaiin moodelss andd riccher userr intterfaaces. 5 集成成 5.11 Intrroducctionnj jBPPM moodulee offfers inteegrattion betwween the Spriing aand jjBPM alloowingg forr reuuse oof Sppringgs HHi
47、berrnatee suppportt aloong wwith the IoC conttaineer. TThe mmodulle alllowss jBPPMs undeerlyiing HHiberrnatee sesssionnFacttory to bbe coonfigguredd thrroughh Sprring and jBPMM acttionss to acceess SSprinngs conttext. 5.2 ConffigurratioonUserss fammiliaar wiith SSprinng wiill ssee tthat the jBPMM mo
48、ddule struucturre reesembbles withh thee ormm pacckagee froom thhe maain SSprinng diistriibutiion. The moduule oofferrs a centtral tempplatee claass ffor wworkiing wwith jBPMM, a calllbackk to acceess tthe nnativve JbbpmCoontexxt annd a locaal faactorry beean ffor cconfiiguraationn andd creeatinng a
49、 jBPMM insstancce. cclassspathh:/orrg/sppringgmoduules/workkfloww/jbppm31/someeOtheerWorrkfloow.xmml sett The eexampple aabovee shoows hhow (exisstingg) Sppringg-mannagedd Hibbernaate SSessiionFaactorries and trannsacttion manaagemeent ccan bbe reeusedd witth jBBPM. 5.3 LocaalJbppmConnfiguuratiionFa
50、actorryBeaanThe mmain elemment is LLocallJbpmmConffigurratioonFacctoryyBeann whiich sshoulld bee fammiliaar too useers aacusttomedd to Spriing. Baseed onn thee jbppm coonfiggurattion filee andd thee givven SSessiionFaactorry, iit wiill ccreatte a jBPMM connfiguuratiion wwhichh cann be usedd forr wor
51、rkingg witth thhe giiven proccess defiinitiions. It is ppossiible to rreplaace jjBPM xml conffigurratioon wiith jjBPM 3.1.x neewly addeed ObbjecttFacttory - noote tthat if bboth are pressent the xml conffigurratioon iss preefferred. LocaalJbppmConnfiguuratiionFaactorryBeaan alllowss thee creeatioon
52、off thee undderlyying scheema bbasedd on the proccess defiinitiions loadded aautommaticcallyy at starrtup.Note thatt thee sesssionnFacttory proppertyy is not manddatorry - Hibeernatte SeessioonFacctoryy cann be reussed wwith jBPMM or jBPMM cann worrk byy itsself withhout any inteegrattion withh thee
53、 exiistinng innfrasstruccturee. Hooweveer, iin moost sscenaarioss, ussing LocaalJbppmConnfiguuratiionFaactorryBeaan alllowss onee to takee advvantaage oof Sppringg traansacctionn mannagemment infrrastrructuure sso itts ppossiible withhout any codee chaange to uuse jjBPM, Hibbernaate aand jjdbc-basee
54、d coode iinsidde thhe saame ttranssactiionall conntextt, bee it manaaged locaally or gglobaally (JTAA). MMoreoover, it is ppossiible to uuse tthreaad-boound sesssion or OOpenSSessiionInnVieww pattternns wiith jjBPM.LocallJbpmmConffigurratioonFacctoryyBeann is alsoo awaare oof thhe ennclossing applli
55、cattionCConteext llifeccyclee - jjBPM willl be inittialiized oncee thee conntextt is starrted (usuuallyy appplicaationn staartupp) annd wiill bbe cllosedd prooperlly whhen tthe cconteext iis deestrooyed (appplicaationn is shuttdownn).Note thatt LoccalJbbpmCoonfiggurattionFFactooryBeean ccan bbe coon
56、figguredd proogrammaticcallyy andd cann be usedd staandallone onlyy to builld ann jBPPM coontexxt whhich can be uused indeependdentlly off Sprring Moduules jBPMM suppportt. 5.4 Inveersioon off Conntroll: JbbpmTeemplaate aand JJbpmCCallbbackAnothher iimporrtantt feaaturee of Spriing MModulles jjBPM s
57、uppport is JJbpmTTempllate. Thee temmplatte offferss verry coonvieent wways of wworkiing ddirecctly withh proocesss deffinittionss as welll as jBPMM APII takking caree of handdlingg excceptiions (be it jjBPM or HHiberrnatee bassed) in rrespeect tto thhe onngoinng trransaactioon (iif itts ppreseent),
58、 thee undderlyying Hibeernatte seessioon (iif peesisttent servvicess aree useed) aand tthe jjBPM conttext. jBPPM exxcepttionss (annd thhe unnderllyingg Hibbernaate iinforrmatiion) are trannslatted iinto Spriingss DAOO excceptiion hhieraarchyy. Evverytthingg happpenss in a trranspparennt annd coonsis
59、stentt mannner.Thiss is posssiblee, ass witth evvery Spriing-sstylee temmplatte,evven wwhen direect aaccesss too thee nattive JbpmmConttext is ddesirred, throough the JbpmmCalllbackk:publiic PrrocesssInsstancce fiindPrrocesssInsstancce(fiinal Longg proocesssInsttanceeId) retuurn (ProccessIInstaance)
60、 exeecutee(neww JbppmCalllbacck() ppubliic Obbjectt doIInJbppm(JbbpmCoontexxt coontexxt) / doo sommethiing rreturrn coontexxt.geetGraaphSeessioon().loaddProccessIInstaance(proccessIInstaanceIId.loongVaalue(); ); As weell, as LLocallJbpmmConffigurratioonFacctoryyBeann, thhe JbbpmTeemplaate ccan bbe c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025员工解除劳动合同协议书范文
- 2025合同终止的具体法律事实解析
- 2025关于机械设备租赁合同
- 2025深圳市标准商铺租赁合同范本
- 2025短期临时劳动合同协议书
- 2025年深入理解技术合同与劳务合同的区别与联系
- 2025精简版的购房合同协议书
- 《全球建筑》课件
- 《常见的健康问题解析》课件
- 《脊柱侧弯的护理》课件
- 母乳喂养知识培训课件下载
- 西安市曲江第三中学行政人员及教师招聘笔试真题2024
- 2025-2030中国竹纤维行业市场发展现状及竞争策略与投资前景研究报告
- 委托外包催收合同协议
- 2025-2030中国涂装行业市场深度分析及发展预测与投资策略研究报告
- 乳腺癌诊治指南与规范(2025年版)解读
- 银行系统招聘考试(经济、金融、会计)模拟试卷14
- 心理韧性在咨询中的重要性试题及答案
- 外研版(三起)(2024)三年级下册英语Unit 2 单元测试卷(含答案)
- 2025年全国普通话水平测试训练题库及答案
- 国开(内蒙古)2024年《创新创业教育基础》形考任务1-3终考任务答案
评论
0/150
提交评论