`

jBPM(十六): 记录JbpmContext实例的诞生

阅读更多

        在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方法.

3
0
分享到:
评论

相关推荐

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    JBPM数据库表说明 jbpm 工作流 详细到每一个字段,不要下载分

    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开发环境详解 #### 一、配置开发工具 **1. 安装 Eclipse Designer到 Myeclipse6** - **步骤**: - 将`jbpm-jpdl-suite-3.2.3/designer/eclipse/plugins`目录下的所有文件及文件夹...

    jBPM开发:配置EclipseIDE开发环境.pdf

    从给定的文件信息中可以提取到一系列与配置Eclipse集成开发环境(IDE)以进行jBPM开发有关的知识点。jBPM是一个开源的业务流程管理套件(Business Process Management Suite, BPM Suite),它可以帮助开发者实现业务...

    一个Jbpm员工请假流程的实例(源代码)

    在这个实例中,我们关注的是一个基于Jbpm实现的员工请假流程。这个流程涵盖了从申请到审批的整个过程,展示了Jbpm在实际业务场景中的应用。 首先,`.classpath`和`.project`是Eclipse IDE的配置文件,它们定义了...

    JBPM修改数据库教程以及实例

    【JBPM修改数据库教程及实例】 JBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于管理和执行业务流程。在JBPM6中,默认使用H2内存数据库进行存储,但实际生产环境中,我们通常会选择...

    JBPM数据库表说明

    - `jbpm_processinst`:记录流程实例的基本信息,如实例ID、流程定义ID、创建时间等。 - `jbpm_token`:表示流程执行中的一个节点,记录流程执行的当前位置。 - `jbpm_workitem`:保存工作项(任务)的详细信息,...

    JBPM4.4工作流引擎实例demo

    **JBPM4.4工作流引擎实例demo** jBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于设计、执行和管理业务流程。jBPM4.4版本是该系统的一个重要里程碑,它在...

    JBPM 工作流接口 全文档

    - **参数**:`JbpmContext jbpmContext`,用于提供对JBPM环境的访问。 - **返回值**:`List&lt;ProcessDefinitionBean&gt;`,包含所有流程定义的信息。 #### 方法:`getLatestProcessDefinitionsList` - **功能**:获取...

    jbpm4.4 工程项目实例

    【jbpm4.4 工程项目实例】是一个基于jbpm工作流引擎的Web应用程序,旨在提供一个实际操作的示例,帮助开发者了解如何在实际项目中应用jbpm。jbpm是一个开源的工作流管理系统,它支持业务流程建模、部署、执行以及...

    JBPM4.4所需要的包.rar

    标题中的"JBPM4.4所需要的包.rar"表明这是一个与JBPM 4.4版本相关的压缩文件,包含了一些必要的库和组件。JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,用于设计、执行和管理...

    jbpm数据库表说明

    - `jbpm_execution`: 表示运行时的流程实例,每个流程实例对应一条记录。 - `jbpm_process_instance`: 存储流程实例的基本信息,如实例ID、流程定义ID、启动时间等。 - `jbpm_variable_instance`: 记录流程实例中...

    JBPM4 开发文档 实例 流程

    - **启动流程实例**:调用startProcessInstanceByKey方法,会在执行表jbpm4_execution、历史记录表jbpm4_hist_...等中新增条目。 **PVM 机制** JBPM4引入了Process Virtual Machine(PVM)机制,用以替代之前的...

    JBPM采购申请系统——04_JbpmContext上下文对象.7z

    JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购申请系统——04_JbpmContext上下文对象.7z JBPM采购...

    我写的一个jbpm实例

    【jbpm实例详解】 jbpm,全称Java Business Process Management,是一个开源的工作流管理系统,用于处理业务流程自动化。它提供了一套完整的框架,包括流程定义、执行、监控和管理等,帮助企业实现流程的灵活配置和...

    jbpm的一个实例

    JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...

    经典的配置好的jbpm实例

    这个经典的jbpm实例提供了一个已经配置好的环境,可以直接在Tomcat应用服务器上部署,并能在MyEclipse集成开发环境中导入使用,极大地简化了开发者的学习和开发流程。 一、jbpm简介 jbpm是一个基于Java的流程引擎,...

    jBPM4.4开发实例

    **jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。jBPM4.4是该框架的一个版本,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务...

    jBPM表结构ppt

    - `JBPM_PROCESSINSTANCE`: 记录流程实例的基本信息,如流程实例ID、流程定义ID、创建时间等。 2. **任务表(Tasks)** - `JBPM_TASK`: 包含关于任务的信息,如任务ID、任务名称、任务状态(待处理、进行中、已...

Global site tag (gtag.js) - Google Analytics