jBPM(20):JbpmContext类自身属性

    jBPM(19):JbpmContext类构造方法需要什么 中, 我们看到一个JbpmContext的诞生需要哪些信息. 那么从它自身的属性来看,又有哪些信息? 这些信息又是从哪来的?
    第一个问题一目了然: JbpmContext类除objectFactory和services(因这两个已知出处)外, 还有两个非静态属性autoSaveProcessInstances(List类型)和jbpmConfiguration.

    先看第一个属性,即autoSaveProcessInstances, 它在addAutoSaveProcessInstance方法里赋值并加元素.那么addAutoSaveProcessInstance方法有什么 用? 跟什么特性相关? 看对它的调用都是在类似(get/load)XXXForUpdate这样的方法里. 以loadProcessInstanceForUpdate为例, 当从数据库里load一个ProcessInstance回来后, 随即便调用addAutoSaveProcessInstance(processInstance)方法,将刚load来的 ProcessInstance加到addAutoSaveProcessInstance里. 加到addAutoSaveProcessInstance里又怎样呢? 在autoSave里看到对addAutoSaveProcessInstance所存数据的遍历,autoSave是包私有的方法,它又在 JbpmContext类的close方法里调用. 再结合jBPM的文档(All the ...ForUpdate methods will automatically save the loaded objects at jbpmContext.close() )明白了: 当调用...ForUpdate方法时, JbpmContext利用addAutoSaveProcessInstance属性把从数据库里弄出来的对象存起来,再在close时自动保存/更 新,这样就不行在程序中显式地来更新了.

    那么jbpmConfiguration属性呢? JbpmContext里有一个方法getJbpmConfiguration,即可以通过JbpmContext来获得 jbpmConfiguration对象. 对其的赋值到现在为止发现一个: jbpmConfiguration类createJbpmContext方法里jbpmContext.jbpmConfiguration = this. 属性jbpmConfiguration在JbpmContext里还有什么用呢? close方法里调用jbpmConfiguration.jbpmContextClosed(this), 往下追,发现jbpmContextClosed方法里把stack里存着的jbpmContext和jbpmConfiguration对pop出来.

   从构造方法里来的objectFactory有什么用? 目前发现只有一个用处:通过getObjectFactory方法,程序可以从JbpmContext里得到ObjectFactory, 现在还没体会到得到这个ObjectFactory有什么用处.

    这样一排除, 我们发现,JbpmContext类里除上面提到跟三个属性(autoSaveProcessInstances,objectFactory和 jbpmConfiguration)相关的方法外, 其余的方法都跟services有关,也就是说那些方法的实现都在以services为基础的. 这个似乎从services名字本身也能看出来. 由于这个services属性及围绕这个属性的方法都很复杂,这里先放一下, 日后再专门来研究.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值