[jbpm]jBPM(十三): 从ObjectFactory到ObjectInfo

在jBPM(十一): 从JbpmContextFilter说起 中, 我们从JbpmThreadsServlet开始,引出了JbpmConfiguration类及其实例通过构造方法 JbpmConfiguration(ObjectFactory objectFactory)的创建.那objectFactory是怎么来的呢? 与之相关的又有些什么看点呢? 本篇中将试着做个梳理总结.

   ObjectFactory是一个接口. 它有两个方法createObject和hasObject, 这个不难理解,这两个方法跟接口的名字是相对应在的: 对象工厂(objectFactory)也就是要来创建对象(createObject)的,同时可能某些情况下有用就来一个判断某个对象有无 (hasObject)的方法. 在jBPM中它只有一个实现类ObjectFactoryImpl(BTW,Spring对jBPM支持的module中有一个 JbpmObjectFactory,此实现类在此不做讨论),先不看接口定义的两个方法在实现类里都做了些什么, 我们来看这个ObjectFactoryImpl是怎么创建的, 以及创建后又对它做了些什么set. 

   在JbpmConfiguration类的parseObjectFactory方法里, 我们看到了如下的代码:

  Java代码  

ObjectFactoryParser objectFactoryParser = new ObjectFactoryParser();
        ObjectFactoryImpl objectFactoryImpl = new ObjectFactoryImpl();
        objectFactoryParser.parseElementsFromResource("org/jbpm/default.jbpm.cfg.xml", objectFactoryImpl);
if (inputStream!=null) {
          log.debug("loading specific configuration...");
          objectFactoryParser.parseElementsStream(inputStream, objectFactoryImpl);
        }
return objectFactoryImpl;

结合上下文, 不难看出这是解析jBPM的配置文件, 并把配置文件里的相关信息以objectFactory实例的形式保存下来. 具体在解析时又做了些什么呢? 追着objectFactoryParser.parseElementsStream方法,发现最终调用了ObjectFactoryImpl类的 addObjectInfo方法,并在方法addObjectInfo中, 给ObjectFactoryImpl类的属性namedObjectInfos或objectInfos加了传来的ObjectInfo实例.

    ObjectInfo? 又是一个新的东东. 它代表什么? 这是一个jBPM解析配置文件过程中很重要的一个概念.先在这里放一放.

   上面的分析,我们看出ObjectFactory(也就是ObjectFactoryImpl类)创建后,把配置文件中信息放到了ObjectFactoryImpl属性namedObjectInfos和objectInfos中.

    在结束对ObjectFactory分析前,看下其定义的createObject方法(因另一方法hasObject一看就能明白,这里就不再赘述) 做了什么?顺着方法createObject,一直看到了objectInfo.createObject(this)的执行. 又是ObjectInfo?

    对,又是ObjectInfo! ObjectInfo还是一个接口, 这个接口有什么实现类? 它对应着配置文件中什么信息呢? 我们将在下一篇中加以梳理总结.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值