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文件中
改为
?
统一由spring处理事务,由右边的配置可以看出是通过创建新的session从而开启事务的
* jbpm.hibernate.cfg.xml文件中
* 数据库的连接配置
thread
这行配置不能写,不能从当前线程中获取session
* OA项目本身的表的映射文件
* jbpm的表的映射文件
* spring的配置文件
* hibernate配置文件的路径修改
?
? ? ?
? ? ? ? ? classpath:jbpm/jbpm.hibernate.cfg.xml
? ? ?
?
*?让spring产生processEngine
?
? ? ?
?
?? ? ? factory-method="createProcessEngine" />
注意jbpm.cfg.xml配置文件的路径
5,总结:
JBPM与SSH整合——让Spring管理生成ProcessEngine,让Hibernate生成JBPM实体数据库表。