研究了1段时间的工作流的,也在项目中尝试的使用工作流。也1直在探索使用工作流的好处也在网上找了1些文章的介绍,其中有崔成龙师哥写的博客从程序员的角度来看为何我们需要工作流,中的介绍,我这里就不在累述了。但是对工作流的学习我也处在刚刚开始的阶段,对再精深的理解我也就不多说了。也许等到我们的项目上线我才有更多的发言权。
但我确切是需要记录1下我的学习进程的。我也会陆续的写1些工作流的文章,首先是帮助我整理知识,也帮助其他的初学者认识这个从无到有的进程。
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的1个开源的、灵活的、易扩大的基于java实现的流程业务处理框架(Business Process Management)。
支持企业的流程性业务利用:解释业务规则,使得协作自动化
我所使用的是jbpm4.4为何使用这个版本呢。由于jbpm4是最成熟和使用最广泛的版本。与jbpm3相比,其最大的变化是引入了虚拟机(PVM)同时增加了bpms的特性,jbpm4不再满足于工作流系统的定位,开始向bpms努力。
准备工作:
1、使用的相干开发工具软件。
1)Eclipse IDE for Java EE Developers(Eclipse 4.2)
2)jBPM4.4
3)MySQL5.6
2、配置在Eclipse中设计流程的gpd插件。(用于绘制自定义流程)
1)gpd插件所在目录:jbpm⑷.4installsrcgpdjbpm-gpd-site.zip
2)安装插件:Eclipse菜单 Help-->Install New Softwore...打开Install窗口;在Install窗口点击 Add...打开Add Repository窗口;在Add Repository窗口点击Archive...在插件所在目录选择jbpm-gpd-site.zip。
3)安装完成会提示是不是重启Eclipse,选择重启。
3、与ssh2整合。
想要让JBPM4.4与SSH2进行整合,首先肯定是要先让SSH2整合好,那是必须的。关于SSH2的整合,我在这就不多费口舌了,网上资料1大把。
整合前,很有必要先对JBPM有个感性的认识。JBPM在管理流程时,是需要数据库表的支持的,由于底层的逻辑有那末复杂。默许下载下来的配置,使用的是内存数据库。实际利用中,我们就需要连接到我们的数据库里来。
研究过JBPM的人都知道,JBPM在操作流程时,1切都是基于ProcessEngine对象,所以整合的思路很简单,只要我们能让Spring创建出ProcessEngine,整合就算是迈出1大步,我们先在spring配置文件(applicationContext.xml)里加入以下代码:
<!-- 配置ProcessEngine -->
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper">
<property name="jbpmCfg" value="jbpm.cfg.xml"></property>
</bean>
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
在这里创建processEngine 对象,在这里用到 jbpm.cfg.xml,它的内容以下:
<?xml version="1.0" encoding="UTF⑻"?>
<jbpm-configuration>
<import resource="jbpm.default.cfg.xml" />
<import resource="jbpm.businesscalendar.cfg.xml" />
<!-- 与Spring整合需要导入jbpm.tx.spring.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" />
</jbpm-configuration>
看到这里,也许你又会问:jbpm.cfg.xml
里又援用了那末多的文件,这些文件在哪里?这些文件,你不用担心,他们都在jbpm.jar文件里,这不是我们管的事。
到这里,算完了吗?还没有!前面说过,JBPM要数据库表的支持才能工作,JBPM又是使用Hibernate操作数据库,就不免要配置Hibernate的表与实体的映照文件,以下:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration⑶.0.dtd">
<hibernate-configuration>
<session-factory>
<!--
数据库信息 -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="connection.url">jdbc:mysql:///itcastoa_20120216</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 其他配置 -->
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<!-- 导入JBPM4.4的映照文件 -->
<mapping resource="jbpm.repository.hbm.xml" />
<mapping resource="jbpm.execution.hbm.xml" />
<mapping resource="jbpm.history.hbm.xml" />
<mapping resource="jbpm.task.hbm.xml" />
<mapping resource="jbpm.identity.hbm.xml" />
<!-- 导入自己的映照配置(根据自己的情况填写) -->
<mapping resource="cn/itcast/oa/domain/User.hbm.xml" />
<mapping resource="cn/itcast/oa/domain/Department.hbm.xml" />
<mapping resource="cn/itcast/oa/domain/Role.hbm.xml" />
</session-factory>
</hibernate-configuration>
看到这里,也许你又会问,上面的这些*.hbm.xml文件又是哪来的?放心,这些,又是在jbpm.jar里的,我们只管加载就行。
下面1步,就是jar包的添加,如果你已整合了SSH2,那末你只需要再添加
jbpm.jar,
juel-api.jar,
juel-engine.jar,
juel-impl.jar,
mail.jar
这些工作全部完成。你的jbpm+ssh2的环境就搭建完成了。