Activiti开发学习笔记

感情迁移 提交于 2020-12-30 14:02:12

图片

  1. 概述介绍

最近公司有个大项目需要用到流程引擎平台。服务治理平台中要提供流程治理服务,所以小编在加紧学习工作流引擎的开发。 所以即将学习的是一个业务流程管理框架, 常见开源工作流引擎框架 :OSWorkFlow、jBPM(jboss business process management),Activiti工作流(是对jBPM升级)。流程开发框架一般我们称作为工作流框架.

为什么推荐使用activit这个框架?

activit它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务。
另外我觉得它比JBPM相对来说好的一点就是:再简单,开发难度减低了。
  1. 技术框架-开发环境

  • 语言:Java 8
  • IDE(JAVA):IDEA / Eclipse安装activit插件
  • IDE(前端):WebStorm 或者 IDEA
  • 依赖管理:Maven
  • 数据库:MySQL5.7

  1. 第一个例子

源码下载地址,复制下载即可


import org.activiti.engine.ProcessEngine;

import org.activiti.engine.ProcessEngines;

import org.activiti.engine.RepositoryService;

import org.activiti.engine.RuntimeService;

import org.activiti.engine.TaskService;

import org.activiti.engine.task.Task;


/**

 * 第一个流程运行类

 */

public class First {

public static void main(String[] args)  {

// 创建流程引擎

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

// 得到流程存储服务组件

RepositoryService repositoryService = engine.getRepositoryService();

// 得到运行时服务组件

RuntimeService runtimeService = engine.getRuntimeService();

// 获取流程任务组件

TaskService taskService = engine.getTaskService();

// 部署流程文件

repositoryService.createDeployment().addClasspathResource("bpmn/First.bpmn").deploy();

// 启动流程

runtimeService.startProcessInstanceByKey("process1");

// 查询第一个任务

Task task = taskService.createTaskQuery().singleResult();

System.out.println("第一个任务完成前,当前任务名称:" + task.getName());

// 完成第一个任务

taskService.complete(task.getId());

// 查询第二个任务

task = taskService.createTaskQuery().singleResult();

System.out.println("第二个任务完成前,当前任务名称:" + task.getName());

// 完成第二个任务(流程结束)

taskService.complete(task.getId());

task = taskService.createTaskQuery().singleResult();

System.out.println("流程结束后,查找任务:" + task);

// 退出

System.exit(0);

}

}

  1. 总结

总结:使用activit,首先创建流程引擎, 得到流程存储服务组件得到运行时服务组件部署流程文件并启动流程。


这个例子比较简单,大家别笑话。

  1. 扫码关注

图片

(公众号)

图片

(微信)

  1. 免责声明

写作说明】以上内容分享给喜欢编程,有梦想的程序员,希望能帮助到你们。以上文章属于此公众号原创所有,如需转载请注明出处。

免责申明】本公众平台不是广告商,也没有为其他三方网站或者个人做广告宣传。此分享的源代码和文章是小编在项目中、学习中整理的一些认为不错的项目。用户产生的一些自愿下载或者付费行为。与平台没有直接关系

投稿邮箱】315997972@qq.com

 欢迎投稿分享你的优质源码或文章


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!