JBPM4与Spring整合的2种方式
下面我们介绍jBPM与Spring整合的2种方式:
第一种:手工将SessionFactory放入jBPM4中。
第1步:更改jbpm.spring.default.cfg.xml配置文件,将下面的部分注释掉
<!--
<hibernate-configuration>
<cfg resource="jbpm.hibernate.cfg.xml" />
</hibernate-configuration>
<hibernate-session-factory />
-->
部
分是在jBPM4中创建了sessionFactory,而我们只需要一个sessionFactory。既然要将jBPM4与Spring的整合,那就
希望由Spring来统一管理sessionFactory和事务,在Spring的配置文件中构造一个sessionFactory。
ProcessEngine是jBPM4的Facade模式,一切由它与外部交互。
第2步:在Spring配置文件中写一个bean:
<bean id="processEngine" class="com.family168.jbpm.ProcessEngineFactoryBean">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="processEngine" class="com.family168.jbpm.ProcessEngineFactoryBean">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
第3步:在ProcessFactoryBean中注入SessionFactory:
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
第
4步:在ProcessFactoryBean中创建一个SpringConfiguration,然后将sessionFactory放入
SpringConfiguration中,再从SpringConfiguration得到processEngine,代码如下:
public void afterPropertiesSet() {
SpringConfiguration cfg = new SpringConfiguration(jbpmConfigurationLocation);
cfg.setApplicationContext(applicationContext);
cfg.setSessionFactory(sessionFactory);
this.processEngine = cfg.buildProcessEngine();
}
然后我们的工作就可以开展了,可以从processEngine得到所有的service。比如:
Java代码
ProcessEngine processEngine = (ProcessEngine) ctx.getBean("processEngine");
RepositoryService repositoryService = processEngine.getRepositoryService();。
第2种:获得Hibernate的SessionFactory。
第1步:与第一种方式的第1步一样。
第2步:更改jbpm.tx.spring.cfg.xml配置文件:
将
<standard-transaction-interceptor/>
改成
<spring-transaction-interceptor current="true" />
然后将
<transaction/>
<hibernate-session/>
改成<hibernate-session current="true"/>
这部分修改是将jBPM4创建的spring事务和hibernate的session改成从当前的ThreadLocal中获得session和事务。
第3步:在Spring配置文件中写bean,processEngine和template:
<bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
<constructor-arg value="jbpm/jbpm.cfg.xml" />
</bean>
<bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />
<bean id="jbpmTemplate" class="com.family168.jbpm.JbpmTemplate">
<property name="processEngine" ref="processEngine"/>
<property name="dataSource" ref="dataSource"/>
</bean>
processEngine直接使用factory-bean指向jbpmConfiguration,也就是org.jbpm.pvm.internal.cfg.SpringConfiguration,并从SpringConfiguration的buildProcessEngine中获得。
jbpmTemplate主要是控制事务,在processEngine外面创建事务,这样使用的时候会先调用jbpmTemplate,再调用processEngine,否则它会说事务没有启动。在jbpmTemplate中注入processEngine:
public void setProcessEngine(ProcessEngine processEngine) {
this.processEngine = processEngine;
}
public void setProcessEngine(ProcessEngine processEngine) {
this.processEngine = processEngine;
}
这里在上面已经将事务改成从当前的Threadlocal中获得,所以jBPM4是必须当前有事务,如果没有创建事务的话
分享到:
相关推荐
**标题:“jBPM4与Spring整合的2种方式”** **内容概述:** jBPM4是一款开源的工作流管理系统,它提供了业务流程管理(BPM)和工作流服务。而Spring是一个广泛应用的Java企业级应用框架,它简化了开发、配置和管理...
**JBPM4与Spring整合详解** JBPM4(Java Business Process Management 4)是一个开源的工作流管理系统,它提供了业务流程的建模、部署、执行和监控功能。Spring框架则是Java应用开发中的一个核心组件,主要负责依赖...
在企业级应用开发中,流程管理引擎JBPM(JBoss Business Process Management)与Spring框架的结合使用是常见的一种技术方案。JBPM是一个灵活、强大的业务流程管理工具,而Spring框架则以其优秀的依赖注入(DI)和...
近期网上有人介绍jBPM4与Spring整合的2种方式,但没有人贴出代码,闲着无聊写了个例子,源码见附件,在WEBLOGIC下运行正常,事务由spring控制http://ip:7001/Spring/helloWorld.do
**Jbpm4.4整合Spring Hibernate4详解** Jbpm4.4是一个流程管理系统,它结合了业务流程管理(BPM)和工作流服务,提供了强大的流程定义、执行和监控能力。在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了...
4. **业务接口设计**:在Struts2中定义处理流程相关请求的Action,这些Action会调用Spring管理的Service来与JBPM4交互,如启动流程、提交任务等。 5. **持久化处理**:使用Hibernate定义请假流程中的实体类,并配置...
【JBPM4.4+Spring+EXT 整合详解】 JBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程自动化。版本4.4是JBPM的一个...这种整合方式在现代企业级应用中具有很高的实用价值。
同时,配置数据源、事务管理器等,确保jbpm4与Spring的事务管理能够协同工作。 2. **流程定义**:jbpm4使用BPMN 2.0标准来定义流程,这些定义通常以`.bpmn20.xml`文件存在。在Spring中,我们可以使用`jbpmDeployer`...
**jbpm4整合struts2+spring2.5+hibernate3.3** 是一个经典的Java企业级应用集成框架,用于构建业务流程管理系统。jbpm4是Business Process Management(业务流程管理)的一个开源框架,它允许开发者设计、执行、监控...
jbpm4.4 ibatis-spring 整合
jbpm4.3-spring2.5整合是一个关键的话题,涉及到企业级工作流管理系统Jbpm与Spring框架的集成。Jbpm是一个开源的工作流程管理(BPM)和业务规则管理系统,它允许开发者设计、执行、管理和监控业务流程。而Spring是...
【jbpm4整合struts2+spring2.5+hibernate3.3】的知识点详解 jbpm4是一款开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在实际开发中,通常需要将其与其他流行的技术框架,如Struts2、Spring和...
- `jbpm_03_for_ant部署.doc`:这个文档很可能是关于使用Ant构建工具来部署和运行JBPM5与Spring3整合应用的指南。Ant是Java项目常用的构建工具,可以编写XML配置文件来自动化编译、打包和部署过程。 - `jbpm_03_for_...
【jbpm4+spring+hibernate】是一个集成示例,展示了如何将业务流程管理工具Jbpm4与Spring框架和Hibernate ORM库协同工作。这个示例主要关注于在企业级应用中实现工作流管理和数据持久化。让我们深入探讨这三个技术...
【jbpm4与SSH整合详解】 在Java企业级开发中,Spring(SSH中的S)、Struts(H)和Hibernate(S)是常见的三大框架,它们分别负责依赖注入、MVC层处理和持久化操作。而jbpm4则是一个流程管理系统,用于业务流程的...
在spring3中整合jbpm5的例子,前台用spring mvc3做了简单的页面。 其中用到了jbpm5的persistence,local human service等,简单、完整。 用的mysql数据库,修改下spring datasource的配置,然后用mvn jetty:run编译...
Spring与JBPM4的集成 Spring框架和JBPM4的集成是指将Spring框架与JBPM4业务流程管理系统集成,以便更好地管理业务流程和工作流程。这种集成可以提供更加灵活和高效的业务流程管理解决方案。 知识点1:为什么需要...