新钛云服已累计为您分享695篇技术干货
一、工作流
1、工作流概述
在一个公司业务中,每一个业务的开始和结束,都可以理解成为一个工作流。例如公司请假的基本流程。
如图所示,员工先提出请假申请,提交该申请给直属领导审批,直属领导审批后,再提交给人事部门审批,审批完成后,通知提出申请的员工,即请假流程结束。整个步骤按照正常工作方式一步步完成,这就是一个简单而又完整的工作流;工作流可以理解为从开始节点发起流程,然后经过其中多个节点,完成动作,最后到结束节点的整个过程。
在没有工作流引擎之前,为了实现上述的流程控制,开发人员最常用的做法是采用状态值跟踪流程的状态变化,假设初始值为0,每一个流程的流转,状态值+1,然后给出相应的处理逻辑。可以看出工作的流程和业务高度耦合,当流程发生变化时,我们的业务代码也要做出同等的调整。
如果有一个工具帮助我们管理工作流,当业务流程变化后,程序不需要发生变化,最终将会让我们的开发能力和业务能力大幅提升。于是乎,工作流引擎应运而生!
二、Activiti介绍
1、简介
Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度
Activiti是一种轻量级,可嵌入的BPM引擎,可以将复杂的业务流程抽取出来,然后使用专门的建模语言BPMN2.0定义执行流程,最终业务系统通过访问Activiti的接口去驱动预定义的流程执行
Activiti 流程引擎重点关注在系统开发的易用性和轻量性上.每一项BPM业务功能Activiti流程引擎都以服务的形式提供给开发人员.通过使用这些服务,开发人员能够构建出功能丰富,轻便且高效的BPM应用程序
2、Activiti服务架构
activiti.cfg.xml:
Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数
核心类: