Jbpm Delegation机制源代码分析和实例

本文深入分析了Jbpm中的Delegation机制,包括Delegation的定义、在Jbpm中的应用,以及Delegation类和相关类的作用。通过对Instantiator接口及其实现类的探讨,展示了Delegation如何在流程执行中引入用户自定义代码。同时,详细介绍了Action中Delegation的使用方法和配置类型,如FieldInstantiator、BeanInstantiator等,阐述了它们在实例化客户化类时的不同策略。
摘要由CSDN通过智能技术生成

 

  Jbpm Delegation机制源代码分析和实例  

 

分析版本 3.1.3  

 

 

 

作者:吴大愚

Email:dywu_xa@sina.com

1.   什么是Delegation

在分析JbpmDelegation机制之前,我们要先搞明白什么是Delegation。在这里我不细写什么是Delegation,而给出两个链接,这两个连接都是csdn上面的博客文章,讲解了什么是Delegation机制。

Delegation模式》:http://blog.csdn.net/mildwind/archive/2004/12/15/217553.aspx

delegation(委托)vs. composition(复合)?》:http://blog.csdn.net/fantasylu/archive/2004/07/22/44901.aspx

如果这两个链接失效的话,大家也可以在我的博客(http://blog.csdn.net/dust_bug)上面找一篇我转载并总结的有关Delegation机制的文章。

 

简单的说一下什么是Delegation

Jbpmuser guide16.2节中说道“Delegation is the mechanism used to include the users' custom code in the execution of processes.”。

有人这么说“委托(Delegation)模式是一种技术,一个对象在外界来看好像实现了一些行为,但实际上是委托给相关的其他类来实现行为的”(见《Delegation模式》)。还有人说真正的Delegation不是这样的,还必须有更高的要求才是Delegation,他们这么说“To achieve the same effect with delegation, the receiver passes itself to the delegate to let the delegated operation refer to the receiver”(见《delegation(委托)vs. composition(复合)?》)

Jbpm中的Delegation应该是第一种观点中的Delegation

2.   Jbpm在何处使用Delegation

就像Jbpm的文档中自己写的那样,Jbpm使用Delegation机制是为了在流程执行中能够使用用户自己定制的代码(user’s custom code)。

jPDLschema定义中,有四个元素是可以添加用户自己定制的类。那就是actionassignmentcontrollerhandler。这四个元素都有两个共同的属性,classconfig-type。其中,action元素中class所指定的类必须实现org.jbpm.graph.def.ActionHandler接口。Assignment元素的class所指定的类必须实现org.jbpm.taskmgmt.def.AssignmentHandler接口。controller元素的class所指定的类必须实现org.jbpm.taskmgmt.def.TaskControllerHandler接口。handler元素的class所指定的类必须实现org.jbpm.graph.node.DecisionHandler接口。

在这四个元素的schema定义中还都有一个没有Name属性的成员“{content}”。Jbpm对它的解释是“the content of the handler can be used as configuration information for your custom handler implementations. This allows the creation of reusable delegation classes.”我会在Delegation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值