`
xgbjmxn
  • 浏览: 269258 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

jBPM4的运行期环境

    博客分类:
  • jbpm
阅读更多



一、运行期环境就是一个餐馆
二、jBPM4的运行期环境
Environment environment = environmentFactory.openEnvironment();
try {
everything available in this block
} finally {
environment.close();
}

两个关键的类:EnvironmentFactory和Environment.
EnvironmentFactory是全局的,在整个应用程序中保持一个实例即可.
Environment则是每次方法调用则要new一个.
看看Environment的主要方法:
public abstract Object get(String name);
public abstract <T> T get(Class<T> type);

是的,environment为我们的代码提供所需要的服务类实例.
那么,如何获得environment?
那么,为什么Environment每次调用要new呢?
好吧,当你需要获取数据库Session的时候,是不是每次都要new呢.Environment提供的服务里包括了非线程安全的数据库操作服务.

三、 jBPM4运行期环境的实现

1、JbpmConfiguration
JbpmConfiguration是jBPM4里最重要的类,它是整个应用程序的入口.它实现了EnvironmentFactory接口.

JbpmConfiguration加载jBPM总的配置文件,还是大概扫一下这个配置文件:

<jbpm-configuration xmlns="http://jbpm.org/xsd/cfg">

<process-engine-context>
<repository-service />
<repository-cache />
<execution-service />
<history-service />
<management-service />
<identity-service />
<task-service />
<hibernate-configuration>
<cfg resource="jbpm.hibernate.cfg.xml" />
</hibernate-configuration>
<hibernate-session-factory />
</process-engine-context>

<transaction-context>
<repository-session />
<pvm-db-session />
<job-db-session />
<task-db-session />
<message-session />
<timer-session />
<history-session />
</transaction-context>

</jbpm-configuration>

配置文件被分为了两部分,分别是:process-engine-context和transaction-context.对应于两个IOC容器(WireContext)的配置文件.

作为EnvironmentFactory,JbpmConfiguration持有成品process-engine-context对应的IOC容器(全局的)实例,持有半成品transaction-context的WireDefinition.当调用openEnvironment方法时,JbpmConfiguration会new Environment,然后将process-engine-context IOC填充入environment,同时初始化transaction-context IOC,并将其也填充入environment.这样通过environment就可以获得所有所需要的服务,包括全局的和非线程安全的服务实例.也就是environment透过IOC容器提供了查找各种服务的能力.
file:///C:/Documents%20and%20Settings/Administrator/Local%20Settings/Temporary%20Internet%20Files/Content.IE5/AMBSBSK7/6f603207390ea3518502ce6fa53f60a0[1].png


2、与线程绑定的environment

environment初始化之后,避免参数传递得一塌糊涂的方式就是将environment与线程绑定.看Environment的代码:
是的,在openEnvironment时,有这么一行代码:
这样environment就与线程绑定了,可以通过Environment.getCurrent()任意调用了.

哪里有压迫,哪里就有放抗.

在environment.close()方法里:

Environment.popEnvironment();


OK,结束.





  • 大小: 35.1 KB
分享到:
评论

相关推荐

    jBPM4的PVM实现解析

    #### 六、PVM的运行期环境 1. **JbpmConfiguration**: - 配置了PVM的运行环境,包括事务管理、环境配置等。 - 通过读取配置文件(`jbpm.cfg.xml`)来初始化这些设置。 2. **EngineIOC**: - 使用了依赖注入技术来...

    jBPM4与Spring的集成

    现在流行抱大腿,不过对眼光的要求也高。...下面分别讨论:一、 通过Spring暴露服务还记得在jBPM4的运行期环境里提到的JbpmConfiguration吗?它是整个jBPM4的入口,并且是整个应用独此一份的。通过它可

    spring+hibernate+jbpm整合

    - **面向切面编程(AOP)**:通过预编译方式或运行期动态代理方式,实现对业务逻辑的各个部分进行模块化,从而增强程序的功能。 - **事务管理**:为业务逻辑层提供统一的事务管理机制,确保数据的一致性和完整性。 ...

    带您了解JBPM的PVM

    2. **运行期环境**:提供了IOC(Inversion of Control)容器,如jbpm.cfg.xml中的`&lt;process-engine-context/&gt;`,用于管理对象生命周期和依赖注入。 - Environment:环境设置,包含了运行时必要的上下文信息。 ### ...

    jBPM实例开发 精品文档.docx

    本文将深入探讨如何使用jBPM进行实例开发,包括创建基本流程、使用API管理和控制运行期执行。 首先,要开始jBPM实例开发,你需要下载jbpm-3.0-[version].zip并解压,然后在Eclipse中导入项目。通过“File”-&gt;...

    应用工作流解决中国特色的流程需求

    此外,历史库中丢失了部分运行期数据属性,且未记录任务候选人的任务拾取时间,这对于绩效统计来说是个挑战。 国内人工任务密集型流程的典型特点是用户友好、表单自定义和灵活的临时动态性需求。业务用户需要能够对...

    IKExpression表达式解析器

    使其能在流程运行期获得同配置期一样灵活地对执行逻辑条件进行变更。经过扩展后的IK Expression还可以适用于各种常规业务系统的动态条件配置,如需要图形化配置应用的场合,或是模拟Excel电子表格的公式运算的场景。

    ik-expression源代码

    使其能在流程运行期获得同配置期一样灵活地对执行逻辑条件进行变更。经过扩展后的IK Expression还可以适用于各种常规业务系统的动态条件配置,如需要图形化配置应用的场合,或是模拟Excel电子表格的公式运算的场景。...

    表达式解析器 IKExpression

    使其能在流程运行期获得同配置期一样灵活地对执行逻辑条件进行变更。经过扩展后的IK Expression还可以适用于各种常规业务系统的动态条件配置,如需要图形化配置应用的场合,或是模拟Excel电子表格的公式运算的场景。...

    IK Expression V2.0

    使其能在流程运行期获得同配置期一样灵活地对执行逻辑条件进行变更。经过扩展后的IK Expression还可以适用于各种常规业务系统的动态条件配置,如需要图形化配置应用的场合,或是模拟Excel电子表格的公式运算的场景。...

    Java个人简历模板9.doc

    7. **开发工具与应用服务器**:他对Weblogic、Websphere、Tomcat等应用服务器有使用经验,这些服务器用于部署和运行Java应用,体现了他在企业级环境中的实战能力。 8. **项目经验**:在“武汉融杰商贸综合管理平台...

    30种java技术框架图

    这些框架包括了Java类加载器架构、JVM架构、Java技术体系、线程运行架构、Java编译与运行结构、JMS技术架构、JMX技术架构、Spring架构、Hibernate架构、iBatis架构、Struts1与Struts2架构、JBPM架构以及EJB技术架构...

    1、平均请求数的统计有问题? 平均请求数的计算:如果统计一分钟的qps,那么平均就是当前成功请求数/60秒 所以要准确的话,前

    2. 请求分布分析:通过分析请求在一天中的分布,了解高峰期和低谷期,以便优化资源分配。 3. 数据采样:在高负载情况下,全量统计可能会带来额外的负担,可以采用随机采样或者滑动平均等方式来降低计算复杂度。 4. ...

    liferayPortal

    这种广泛的兼容性使得Liferay能够在不同的环境中部署和运行,提高了其灵活性和可扩展性。 #### 四、数据库支持 Liferay支持多种关系型数据库管理系统,包括但不限于: - Apache Derby - IBM DB2 - Firebird - Hyper...

Global site tag (gtag.js) - Google Analytics