废话不多说,jbpm4默认支持hibernate3.
整合过程如下:
研究过JBPM的人都知道,JBPM在操作流程时,一切都是基于ProcessEngine对象,所以整合的思路很简单,只要我们能让Spring创建出ProcessEngine,整合就算是迈出一大步,我们先在spring配置文件applicationContext-common.xml中添加如下:
<!-- jbpm配置 -->
<!-- 默认配置 这样需要jbpm.cfg.xml在classes目录下-->
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
<!-- 配置 这样可以自行胚子jbpm.cfg.xml所在位置-->
<!--
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper">
<property name="jbpmCfg" value="jbpm.cfg.xml" />
</bean>
-->
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
<!-- 模板配置自己写的,不是必须的 -->
<bean id="jbpmTemplate" class="cn.seven.jbpm.util.JbpmTemplate">
<property name="processEngine" ref="processEngine"></property>
<property name="baseHiber" ref="baseHiber"></property>
</bean>
在这里创建processEngine 对象,在这里用到
jbpm.cfg.xml 文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<jbpm-configuration>
<import resource="jbpm.default.cfg.xml" />
<import resource="jbpm.businesscalendar.cfg.xml" />
<!-- <import resource="jbpm.tx.hibernate.cfg.xml" /> -->
<import resource="jbpm.tx.spring.cfg.xml" />
<import resource="jbpm.jpdl.cfg.xml" />
<import resource="jbpm.bpmn.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" />
<import resource="jbpm.console.cfg.xml" />
<!-- Job executor is excluded for running the example test cases. -->
<!-- To enable timers and messages in production use, this should be included. -->
<!--
<import resource="jbpm.jobexecutor.cfg.xml" />
-->
<!-- <import resource="jbpm.mail.templates.examples.xml" /> -->
<process-engine-context>
<string name="spring.cfg" value="classpath:/config/applicationContext-common.xml" />
</process-engine-context>
</jbpm-configuration>
看到这里,或许你又会问:
jbpm.cfg.xml
里又引用了那么多的文件,这些文件在哪里?这些文件,你不用担心,他们都在jbpm.jar文件里,这不是我们管的事。
到这里,算完了吗?还没有!前面说过,JBPM要数据库表的支持才能工作,JBPM又是使用Hibernate操作数据库,就不免要配置Hibernate的表与实体的映射文件,如下:
到这里,算完了吗?还没有!前面说过,JBPM要数据库表的支持才能工作,JBPM又是使用Hibernate操作数据库,就不免要配置Hibernate的表与实体的映射文件,如下:
<property name="mappingLocations">
<list>
<value>classpath:jbpm.execution.hbm.xml</value>
<value>classpath:jbpm.history.hbm.xml</value>
<value>classpath:jbpm.identity.hbm.xml</value>
<value>classpath:jbpm.repository.hbm.xml</value>
<value>classpath:jbpm.task.hbm.xml</value>
</list>
</property>
我本地是这样配置的也可以,我的hibernate配置信息也一并交给spring管理,所以在
applicationContext-common.xml文件中