概述介绍
最近公司有个大项目需要用到流程引擎平台。服务治理平台中要提供流程治理服务,所以小编在加紧学习工作流引擎的开发。 所以即将学习的是一个业务流程管理框架, 常见开源工作流引擎框架 :OSWorkFlow、jBPM(jboss business process management),Activiti工作流(是对jBPM升级)。流程开发框架一般我们称作为工作流框架.
为什么推荐使用activit这个框架?
activit它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务。另外我觉得它比JBPM相对来说好的一点就是:再简单,开发难度减低了。
技术框架-开发环境
- 语言:Java 8
- IDE(JAVA):IDEA / Eclipse安装activit插件
- IDE(前端):WebStorm 或者 IDEA
- 依赖管理:Maven
- 数据库:MySQL5.7
第一个例子
源码下载地址,复制下载即可
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);
}
}
总结
总结:使用activit,首先创建流程引擎, 得到流程存储服务组件,得到运行时服务组件,部署流程文件并启动流程。
这个例子比较简单,大家别笑话。
扫码关注
(公众号)
(微信)
免责声明
【写作说明】以上内容分享给喜欢编程,有梦想的程序员,希望能帮助到你们。以上文章属于此公众号原创所有,如需转载请注明出处。
【免责申明】本公众平台不是广告商,也没有为其他三方网站或者个人做广告宣传。此分享的源代码和文章是小编在项目中、学习中整理的一些认为不错的项目。用户产生的一些自愿下载或者付费行为。与平台没有直接关系
【投稿邮箱】315997972@qq.com
欢迎投稿分享你的优质源码或文章