JBPM Descriptor详解

DescriptorjbpmIOC实现中扮演重要角色,它由相应的Binding类生成,并生成相应对象的职责,可谓职责重大。

       Descriptor主要用于生成那些对象实例?

              Descriptor主要负责生成流程引擎使用的一些实例,比如TaskService

HistoryServiceISession等,可以毫不夸张的说,没有Descriptor,流程引擎将没有资源可用;对于jpdl对应的Binding生成的实例后续文章进行详解!

Descriptor的继承结构如何?

      下面是FloatDescriptor的继承结构:


Descriptor的实例化过程?          

一般情况下,我们在配置文件中定义我们需要生成Descriptor的标签(也就是Binding中的Tag字符串);WireParser既负责加载Binding的配置文件,也负责根据根据标签找到相应的Binding实例,并生成相应的descriptor;然后会将其添加到WireDefinition

需要说明的是WireDefinition中有descriptorNamesdescriptors,前者会以descriptor继承的所有的基类和接口(但是除去已经添加到其中)的类型为Key,这决定了我们最终获取我们需要的对象的方式;后者就是一个承载descriptor的普通的集合;

Descriptor的结构和作用?

一般的Descriptor主要由两个成员方法组成constructinitialize,前者一般生成相应的对象实例,后者主要初始化相应的字段等。

DefaultObservable的主要作用?

事件监听在面向对象开发中有广泛的应用!当我们需要在construct相应对象前或者后执行自己的一些业务逻辑,我们就可以实现自己的监听器,然后注册到事件源中,当事件发生时将会执行我们的业务逻辑。

      

      通过Descriptor生成对象的全过程中涉及的主要对象?

       EnvironmentImpl->WireContext->WireDefinition->相应Descriptor->生成相应对象

 

 

                                          

原文地址:https://www.cnblogs.com/wufengtinghai/p/wufengtinghai.html