ssh2+jbpm3集成简单示例(一)

      struts2+spring+hibernate是比较流行的javaee开源框架集成组合,在系统的技术架构体系中,hibernate主要负责数据的持久操作,struts2负责web层的控制与显示,而spring充当容器管理的角色,利用ioc机制与aop机制的强大功能,将struts,hibernate纳入自己的资源管理范围,同时提供对各个框架的支持与无集成,最大范围的减少组件之间的耦合度,提高系统的可拓展性与可维护性。jbpm是jboss旗下的一个开源的工作流引擎,是一个基于javaee的轻量级工作流系统,将企业的业务流程进行自动化,持久化并植入系统之中,工作流引擎将发挥很大的作用。jbpm的数据持久层采用的是hibernate,所以对于开发的系统如果使用hibernate框架的话,这是一个完美的组合。目前的最新版本是jbpm4.4,相对于jbpm3来说,jbpm4.x在技术构架上与性能方面做了很大的改进,关于对jbpm4的集成,将会在下次交流。本次示例的开发环境为myeclipse6.5 sql200x hibernate3.2 spring2.0 jbpm3.2.3。当然笔记本是lenovo-t400。

这是一个简单的流程示例,运行结果如下:



 

1.打开ide创建web项目,设置好目录结构,加入各个框架的支持。利用工具画出流程图。



 
流程定义文件如下:
<?xml version="1.0" encoding="gbk"?>
<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="monthreport">

<start-state name="开始">
  <transition to="填写月度工作报告" name="to填写"></transition>
</start-state>

<task-node name="填写月度工作报告">
  <task name="填写月度工作报告任务">
   <assignment actor-id="#{starter}"></assignment>
  </task>
  <transition to="是否为经理" name="去审核"></transition>
</task-node>
<task-node name="经理审核">
  <task name="经理审核任务">
   <assignment actor-id="mrchen"></assignment>
  </task>
  <transition to="填写月度工作报告" name="驳回">
   <action class="com.sample.action.ReturnAction" name="raction"></action>
  </transition>
  <transition to="存档" name="to存档"></transition>
</task-node>
<node name="存档">
  <event type="node-enter">
   <script>
       print(&quot;存档中...&quot;); 
   </script>
  </event>
  <transition to="结束" name="toend"/> 
  <event type="node-leave">
   <script>
    print(&quot;存档完成&quot;);
   </script>
  </event>
</node>
<decision name="是否为经理" expression="#{starter=='mrchen'?'是经理':'非经理'}">
  <transition to="经理审核" name="非经理"></transition>
  <transition to="存档" name="是经理"></transition>
</decision>
<end-state name="结束"></end-state>
</process-definition>
2.配置或修改相关的配置文件。其中hibernate.cfg.xml在创建jbpm工程时会自动生成。根据你自己的环境进行修改。这里主要是数据连接信息的设置。
<hibernate-configuration>
  <session-factory>
    <!-- hibernate dialect -->
    <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
    <!-- JDBC connection properties (begin) -->
    <property name="hibernate.connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
    <property name="hibernate.connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fengjbpm</property>
    <property name="hibernate.connection.username">sa</property>
    <property name="hibernate.connection.password">sa</property>
    <!-- JDBC connection properties (end) -->
   
    <property name="show_sql">true</property>
   
    <property name="format_sql">true</property>
   
    <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
   
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name="hibernate.transaction.factory_class">
  org.hibernate.transaction.JDBCTransactionFactory
</property>【其它略。。。。】
jbpm.cfg.xml文件是从jbpm-jpdl3.2.3根目录下的jbpm.test.cfg.xml复制过来,重命名即可。其中的内容不需要做修改。
3.接下来我们利用hibernate配置文件,利用SchemaExport工具类正向生成数据库脚本。一定要注意了,先得在sqlserver中创建数据库, 名字与上面的配置一样,这里为fengjbpm.

public class CreateSchema {

//先创建数据库,再执行下面的代码
public static void main(String[] args) {
 
  Configuration config =
    new Configuration();
  config.configure("/hibernate.cfg.xml");
 

  SchemaExport e =new SchemaExport(config);
  e.create(true, true);//生成ddl
 
}
}
执行完毕后,你可以刷新数据库,就可以查看产生的数据库对象。

当前数据库环境为初始化环境,可以看到没有任何流程信息。


 


   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值