JBPM与Spring整合

Spring与Jbpm的整合

1,整合的必要性:

流程中对业务数据操作与流程操作需要在同一个事务中实现

例如:请假流程——请假人提交请假申请,流程跳转到下一个节点任务(JBPM数据);记录请假人信息到用户表(业务数据)

一个操作,可能会同时涉及到JBPM数据和业务数据,如果用两个事务,可能会导致业务与流程的数据不一致。

2,整合图

整合原理:

(1)使用Spring容器IOC提供的BeanFactory功能初始化JBPM的configuration。

(2)使业务数据与JBPM公用sessionFactory。

3,Spring与Jbpm整合的核心:

(1)由Spring容器产生processEngine

(2)Jbpm的事务交给spring处理

4,整合步骤

* 导入jbpm的jar包

* 删除db和hibernate的jar包

* 在config下创建一个配置文件

config/jbpm

jbpm.cfg.xml

jbpm.hibernate.cfg.xml

* jbpm.cfg.xml文件中

<import resource="jbpm.tx.hibernate.cfg.xml" />

改为

 <import resource="jbpm.tx.spring.cfg.xml" />

统一由spring处理事务,由右边的配置可以看出是通过创建新的session从而开启事务的

* jbpm.hibernate.cfg.xml文件中

* 数据库的连接配置

<propertyname="current_session_context_class">thread</property>

这行配置不能写,不能从当前线程中获取session

* OA项目本身的表的映射文件

* jbpm的表的映射文件

* spring的配置文件

* hibernate配置文件的路径修改

 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
       <property name="configLocation">
           <value>classpath:jbpm/jbpm.hibernate.cfg.xml</value>
       </property>
 </bean>

* 让spring产生processEngine

 <bean id="springHelper"class="org.jbpm.pvm.internal.processengine.SpringHelper">
      <property name="jbpmCfg"value="jbpm/jbpm.cfg.xml"></property>
 </bean>
 <bean id="processEngine" factory-bean="springHelper"
      factory-method="createProcessEngine" />

注意jbpm.cfg.xml配置文件的路径

5,总结:

JBPM与SSH整合——让Spring管理生成ProcessEngine,让Hibernate生成JBPM实体数据库表。

时间: 2024-10-05 22:59:14

JBPM与Spring整合的相关文章

jbpm与spring hibernate struts整合

applicationContext.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?xml version="

jbpm工作流框架与Spring整合的步骤

1. 在jbpm.cfg.xml文件中注销掉自己的,导入需要的配置文件 <!-- 注销掉这个 <import resource="jbpm.tx.hibernate.cfg.xml" /> --> <!-- 添加这个配置文件 --> <import resource="jbpm.tx.spring.cfg.xml" /> 2.在hibernate.cfg.xml文件中导入配置文件 <!-- 这是jbmp的配置文件

【整合篇】JBPM4.4与Spring整合

我们大家都知道容器的好处,那么工作流也提供了与spring整合的方式,将工作流引擎由spring容器统一管理起来,共同拥有容器的特性.下面来从代码的角度来看看整合与不整合的对比: 未整合: 引入相应的jar包,使用hibernate来持久化 配置文件: jbpm.cfg.xml: <?xml version="1.0" encoding="UTF-8"?> <jbpm-configuration> <import resource=&q

springMVC+MyBatis+Spring 整合(3)

spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm

Spring整合Struts2

Spring整合Struts21整合目的:让Spring的IOC容器去管理Struts2的Action, 2Struts2是web开源框架,Spring要整合Struts2,也就是说要在web应用使用Spring①. 需要额外加入的 jar 包:spring-web-4.0.0.RELEASE.jarspring-webmvc-4.0.0.RELEASE.jar ②. Spring 的配置文件, 和非 WEB 环境没有什么不同 ③. 需要在 web.xml 文件中加入如下配置: <!-- 配置

Spring整合hibernate4:事务管理

Spring和Hibernate整合后,通过Hibernate API进行数据库操作时发现每次都要opensession,close,beginTransaction,commit,这些都是重复的工作,我们可以把事务管理部分交给spring框架完成. 配置事务(xml方式) 使用spring管理事务后在dao中不再需要调用beginTransaction和commit,也不需要调用session.close(),使用API  sessionFactory.getCurrentSession()来

springMVC+MyBatis+Spring 整合(4) ---解决Spring MVC 对AOP不起作用的问题

解决Spring MVC 对AOP不起作用的问题 分类: SpringMVC3x+Spring3x+MyBatis3x myibaits spring J2EE2013-11-21 11:22 640人阅读 评论(1) 收藏 举报 用的是 SSM3的框架 Spring MVC 3.1 + Spring 3.1 + Mybatis3.1第一种情况:Spring MVC 和 Spring 整合的时候,SpringMVC的springmvc.xml文件中 配置扫描包,不要包含 service的注解,S

Spring整合MyBatis

首先下载jar包  mybatis-spring.jar 原因spring3.0出来的早,MyBatis3.0晚,意味着Spring不愿意去在一个没有做出发布版本的MyBatis上做过多的设置.所以,最终jar包提供者第三方. <!--Mybatis+Spring整合--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId&g

JMS 之 Active MQ 的spring整合

一.与spring整合实现ptp的同步接收消息 pom.xml: <!-- https://mvnrepository.com/artifact/org.springframework/spring-jms --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4.3.7.RE