jbpm binding类深入解析

本文详细介绍了JBPM中的Binding机制,包括流程引擎初始化所需的Binding类、两大类型的Binding类及其继承结构,并探讨了Binding类的实例化过程及处理差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JBPMBinding深入解析

JBPM实现了自己的IOC机制,其中重要的成员就是Binding这些类了!

流程引擎初始化都需要加载那些binding类?

我们可以在jbpm.wire.bindings.xml中定义流程引擎初始化需要加载的binding类。当然我们也可以设计自己的binding(如RepositoryUpgradeManageBinding),我既可以把这个类加到jbpm.wire.bindings.xml中,也可以在根目录下添加包含该类的jbpm.user.wire.bindings.xml文件,特别是在自定义的binding类很多时,建议采用后者,以方便后期的维护。

Jbpm中有哪两种类型的binding类?

Jbpm中主要有两大类型的binding类,一种是跟流程引擎使用的一些对象有

关的binding,一类是跟流程定义结点有关的binding类。

Jbpm中的binding类的继承结构是什么样的?

Jbpmbinding类的整体继承结构如下图所示<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


Jbpmbinding类的实例化过程是怎样的?处理过程中有什么不同?

过程:

都是通过读取配置文件,通过配置文件中定义的类,决定需要实例化的类。

不同点:

1. 配置文件及结构不同

Jbpm.wire.bindings.xml jbpm.jpdl.bindings.xml

前者结构

<binding class="org.jbpm.pvm.internal.wire.binding.PropertyBinding" />

后者结构

<activity binding="org.jbpm.jpdl.internal.activity.TaskBinding" />

<eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />

2. 配置文件加载的时机不同

前者是在加载并解析jbpm.cfg.xml之前由WireParser类进行加载;后者是在流程发布时由JpdlParser进行加载。但是两者都是首次运行时执行,只要系统不重启就不会重新加载。

3. 具体负责解释xml的类和生成的实例的处理方式不同

前者是由BindingParser类解析xml,生成的实例添加WireDefine的实例中(这个实例是WireContxt的成员);后者是有JpdlBindingParser类解析xml,生成的实例进行返回,最后添加到流程定义实例中。

JbpmBinding类的结构和作用是什么?

bpmbinding的重要有两个成员方法:

1. 构造函数

传递binding对应的标签字符串。对于非活动类型binding的标签主要在配置文件(jbpm.tx.hibernate.cfg.xml)中配置使用,控制是否生成对应的descriptor;对于活动类型的binding的标签主要用于ActivityImpl中的type字符串,可以用于判定结点的类型。

2. parseDocumentElement,主要用于生成相应的binding对象实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值