本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google
链接:
JBPM入门系列文章:
JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件
JBPM4入门——4.封装流程管理的工具类(JbpmUtil)
1.在eclipse中新建web项目
new --> web --> Dynamic Web Project
2.导jar包
2.1、导jbpm的核心jar包:jbpm.jar
2.2、导其他依赖的jar包:Struts,mysql之类的。这里就不做过多介绍
3.复制相关的xml文件
在jbpm-4.4jbpm-4.4examplessrc下 把以下文件都复制到项目的src下
3.1导完xml文件:然后修改jbpm.hibernate.cfg.xml文件以便于连接到自己的数据库
前提是需要在mysql中建立jbpm的对应数据库
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect </property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property> <property name="show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property>
4.画流程图:
在src下新建一个流程图文件hello.jpdl.xml
生成的相应xml文件为:
<?xml version="1.0" encoding="UTF-8"?> <process name="hello" xmlns="http://jbpm.org/4.4/jpdl"> <start name="start1" g="-1,173,48,48"> <transition name="to state1" to="state1" g="-59,-17"/> </start> <end name="end1" g="755,177,48,48"/> <state name="state1" g="138,170,92,52"> <transition name="to state2" to="state2" g="-33,-16"/> </state> <state name="state2" g="323,170,92,52"> <transition name="to state3" to="state3" g="-59,-17"/> </state> <state name="state3" g="524,173,92,52"> <transition name="to end1" to="end1" g="-47,-17"/> </state> </process>
5.测试
package com.test.test; import org.jbpm.api.Configuration; import org.jbpm.api.ProcessEngine; import org.jbpm.api.RepositoryService; public class Test { public static void main(String[] args) { ProcessEngine processEngine = Configuration.getProcessEngine(); //RepositoryService 是管理流程定义的发布、删除、查询等操作 RepositoryService resRepositoryService = processEngine.getRepositoryService(); //发布流程 resRepositoryService .createDeployment() .addResourceFromClasspath("hello.jpdl.xml") .deploy(); } }
6.查看数据库中的表结果:
之前jbpm中是没有一张表的:现在自动帮我们生成了这么多表
打开jbpm4_deployprop表查看里面的数据:刚才的那个hello流程已经发布的数据库中了