Activiti开发学习笔记

  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,首先创建流程引擎, 得到流程存储服务组件,得到运行时服务组件,部署流程文件并启动流程。

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

本文分享自微信公众号 - 程序源代码(itcode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏肖蕾的博客

ProtoBuf试用与JSON的比较

XML、JSON 也可以用来存储此类结构化数据,但是使用ProtoBuf表示的数据能更加高效,并且将数据压缩得更小。

45930
来自专栏程序员学习大本营

java小工具|用idea查看方法的调用过程

小刀博客: https://www.lixiang.red 小刀公从号: 程序员学习大本营

63520
来自专栏Java研发军团

SpringBoot之Mybatis整合实战一(附分页使用)

随后配置yml文件指定抽象Mapper接口,用于实现生成的Mapper继承改Mapper实现通用Mapper

12510
来自专栏Java研发军团

IntellijIDEA配置tomcat最高版本

1. 首先下载tomcat9,下载地址https://tomcat.apache.org/

1.6K30
来自专栏Java识堂

分库分表,读写分离后,数据库中间件扮演了一个怎样的角色?

前面一篇文章图解分布式系统架构(看推荐阅读)大概讲了一下分库分表,以及读写分离出现的场景,分库分表为了解决高并发和海量数据的问题。

11340
来自专栏Java识堂

Java常量池详解,秒懂各种对象相等操作

(2)节省运行时间:比较字符串时,== 比equals()快。对于两个引用变量,只用==判断引用是否相等,也就可以判断实际值是否相等。

11830
来自专栏程序员开发者社区

Effective Java--第1条静态工厂方法代替构造方法

静态工厂方法代替构造器去创建对象, 在可读性,不重复new对象,和灵活性,代码更简洁4方面有优势。

7320
来自专栏机器之心

华为「鸿蒙」出世:全球首个微内核全场景分布式OS,可取代安卓,发布即开源

这是华为历史上规模最大的一次开发者大会,除了万众瞩目的鸿蒙系统之外,华为 EMUI10 系统、搭载海思鸿鹄 818 智能芯片的「荣耀智慧屏」也会在大会上陆续亮相...

15520
来自专栏运维之美

「运维之美」技术周刊 ( 第 6 期 )

欢迎投稿或推荐你自己的项目,投稿邮箱: editor@hi-linux.com 。如果你对周刊有什么建议和意见,或者想与大家一起讨论技术问题,也可以戳「这里」加...

11650
来自专栏Java架构沉思录

SpringBoot跑起来就完事了吗?你最好要懂优化。

在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢?

21020

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励