什么是JBPM
Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。(来自百科)
特点
JBPM的业务逻辑定义采用了它自己定义的JBoss jBPM Process definition language (jPdl)
jBPM使用Hibernate来管理它的数据库。只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。
JBPM的核心对象
核心对象就是Configuration和ProcessEngine。
configuration是jbpm的配置文件管理对象(资源加载对象)。负责加载jbpm的各种配置:如数据库连接配置,事务配置,身份认证,jpdl等相关配置
ProcessEngine是一个服务工厂,负责创建jbpm的每个任务。它通过configuration类构建,configuration以单例模式获取该对象。它是线程安全的,所有的线程和请求都可以使用同一个processEngine对象。
开发步骤:建立数据库连接、建立jdpl流程定义、部署流程定义、创建流程实例、提交任务
1、 建立数据库连接,通过Hibernate连接数据库,以mySql为例。
jbpmtest是mysql中的schema的名字;
utf-8是字符集,可以根据需要修改;
username=root,mysql数据库的用户名是root;
password=root,mysql数据库的用户密码是root
hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://localhost/jbpmtest?useUnicode=true&characterEncoding=utf-8 hibernate.connection.username=root hibernate.connection.password=root
2、 建立jdpl流程定义
实际就是一个XML文件,提前定义好格式
3、 部署流程
ProcessEngine processEngine=Configuration.getProcessEngine(); //创建repositoryService服务,可以实现部署、删除流程等 RepositoryService repositoryService=processEngine.getRepositoryService(); //部署流程 repositoryService.createDeployment().addResourceFromClasspath("jbpmtest.jpdl.xml").deploy();
4、创建流程实例
ProcessEngine processEngine=Configuration.getProcessEngine(); ExecutionService executionService=processEngine.getExecutionService(); //通过已经存在的实例的key值,获得实例 ProcessInstance processInstance=executionService.startProcessInstanceByKey("jbpmtest"); System.out.println("流程实例ID===="+processInstance.getId());
5、提交任务
ProcessEngine processEngine=Configuration.getProcessEngine(); TaskService taskService=processEngine.getTaskService(); taskService.completeTask("**");
JBPM基本的流程就是这样了,其他的之后再介绍。另外,给出一些知识补充:JBPM提供的服务
RepositoryService
流程资源服务接口。提供对流程定义的部署、查询、删除和流程图查看的操作。
ExecutionService
流程执行服务接口。提供启动流程实例、推进、删除操作。
TaskService
人工任务服务接口。提供对任务的创建、提交、查询、保存、删除等操作
HistoryService
流程历史服务接口。对流程历史库中历史流程实例,历史活动实例等记录的查询
ManagementService
流程管理接口。通常用来管理异步服务(不常用)。
IdentityService
身份认证服务接口。
最后给大家推荐一篇相关的不错文章(点我)