什麼是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
身份認證服務接口。
最後給大家推薦一篇相關的不錯文章(點我)