JBPM与Spring整合

SpringJbpm的整合

1,整合的必要性:

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

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

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

 

2,整合图


整合原理:

1)使用Spring容器IOC提供的BeanFactory功能初始化JBPMconfiguration

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

 

3SpringJbpm整合的核心:

 1)由Spring容器产生processEngine

 2Jbpm的事务交给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,总结:

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

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值