在jBPM(十一): 从JbpmContextFilter说起
中,
一句Java语句(JbpmConfiguration.getInstance(jbpmConfigurationResource))引出了好几篇
对ObjectFactory和ObjectInfo的讨论(详见:jBPM(十三): 从ObjectFactory到ObjectInfo
,jBPM(十四): 见证一ObjectInfo实例的诞生
,jBPM(十五):配置文件到ObjectFactory
),
这篇中接着往下走,看createJbpmContext(jbpmContextName)方法的执行.
(写到这想起了,周六听的讲黄帝内经的广播节目,用主持人的话说,说是,黄帝内经,微言大义,一个字,一个词要讲数分钟或十几分钟.而现在对jBPM
一个方法调用的研究花了不少时间.当然我现在"研究"各方面都不能跟广播节目中讲黄帝内经相比. 不过再往下想下,
国外开源项目jBPM里一个方法调用让我研究了很长时间,那么国内当代有没有什么拿得出手的东东让大家有滋有味地研究欣赏呢?)
跟着Eclipse中的debug,我们进到JbpmConfiguration类中看createJbpmContext方法的实现.
这个方法中,我们看到核心代码是JbpmContext jbpmContext = (JbpmContext)
objectFactory.createObject(name);
也就是objectFactoryImpl对objectFactory接口中定义方法createObject实现.接着追进这个
createObject方法. 在createObject方法中, 先传来的name从namedObjectInfos
get出相应的ObjectInfo来,
这里我们看到这个ObjectInfo是JbpmContextInfo实现类.然后再调用createObject(objectInfo)方法.
在类objectFactoryImpl中,除去与registry相关的辅助功能外,
最终我们定格到getObject(ObjectInfo objectInfo)方法里的object =
objectInfo.createObject(this);一句上. 不错, 这也就是在(jBPM(十三): 从ObjectFactory到ObjectInfo
)初识ObjectInfo末尾提到的那句.
由于object =
objectInfo.createObject(this)一句中的objectInfo实为JbpmContextInfo,这样就多态地进入
JbpmContextInfo类的方法.
在JbpmContextInfo类里createObject方法中往简单地说,就是先new一个Services实例, 再调用new
JbpmContext(services, objectFactory)构造方法生一个JbpmContext出来.
JbpmContext终于从JbpmConfiguration中创建出来了, 回头看看,有些感叹: xml文件的解析,
<jbpm-context>标签到JbpmContextInfo类的转化,
ObjectFactory实现类的把配置文件中众多标签对应ObjectInfo类收集起来为createObject做好准备,
以创建一个JbpmConfiguration实例,最终通过JbpmConfiguration间接地调用JbpmContextInfo的
createObject方法.
分享到:
相关推荐
jbpm jbpm4.3.jar DDDDDDDD
1.6 JBPM_DELEGATION:流程代理类表(用于实例化jbpm中的action类) 6 1.7 JBPM_TASK:流程任务表 6 1.8 JBPM_TASKCONTROLLER:流程任务控制器 7 1.9 JBPM_VARIABLEACCESS:流程变量表 7 1.10 JBPM_MODULEDEFINITION...
1.6 JBPM_DELEGATION:流程代理类表(用于实例化jbpm中的action类) 6 1.7 JBPM_TASK:流程任务表 6 1.8 JBPM_TASKCONTROLLER:流程任务控制器 7 1.9 JBPM_VARIABLEACCESS:流程变量表 7 1.10 JBPM_MODULE...
jBPM开发:配置EclipseIDE开发环境.pdf
jBPM开发:配置EclipseIDE开发环境参考.pdf
一个Jbpm员工请假流程的实例(源代码)
JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购...
JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...
juel-api.jar ,juel-engine.jar, juel-impl.jar, jbpm.jar ,mail.jar
一个Jbpm员工请假流程的实例(doc)
我写的一个jbpm实例
jBPM4.4入门开发实例
jBPM 4.2 HelloWorld实例,jBPM 4.2 HelloWorld实例
本示例是jBPM4工作流示例jbpmDemo,详细演示了jBPM4工作流引擎的使用,里面包含JBPM的课件,详解,非常实用, 希望您喜欢。
纵观jBPM:从jBPM3到jBPM5以及Activiti5.doc
JBPM5+Spring+Hibernate+MySQL 请假例子
学习jbpm 的最佳例子,例子是用orcal10g 做为数据库的项目实例。本项目对jbpm 用户组 的重写 webroot 下 db 文件夹下有 自己用户角色,关系表的 sql 语句,和基本数据 可以帮助测试,流程跟踪的展示!
本文件从JBPM的原理、实现方法、实例等方面详细讲解了JBPM的原理,包括以下内容: 1、JBPM特色: 3 2、流程图的组成: 3 2.1流转 (TRANSITION) 3 2.2活动 (ACTIVITY) 3 3、所用到的表: 4 3.1资源库与运行时表结构:...
一个Jbpm员工请假流程的实例
JBPM4.3与Spring会签 实例,欢迎交流ningjinlin@gmail.com