springboot+flowable实现工作流

springboot+flowable实现工作流_第1张图片前言
工作流框架大家一定不陌生,各种OA系统里我们常常用到。 对于JAVA领域来说一说起工作流框架第一浮现我在脑海中的便是大名鼎鼎的Activiti了。很久以前学习Activiti框架时我也曾记录过一篇文章。见链接:工作流框架Activiti常用功能初探 尽管当时只是学习了一下在之后的相关工作和项目中并没有用到,通过学习后了解了下, 仅对于知识广度进行了扩宽。最近在一个开源项目里见到有使用另一个工做流框架:flowable 。简单用了下感觉还是挺方便的,于是乎决定还是要来使用下并在此做下记录,便于后面用到时可以“拿来主义”,哈哈!什么是flowable?对于flowable是什么以及关于此框架的具体信息可以参看此项目的官方文档:https://www.flowable.org/docs/userguide/index.html官网对于此项目如何使用有非常详细的描述,只是目前还没有对应的中文文档。Flowable is a light-weight business process engine written in Java.这是官网文档对此框架的完美解释:Flowable是一个用java语言写的轻量级工作流引擎。在简单了解flowable后与activiti框架相比的第一感觉就是开发方便快速,易与springBoot等各种框架快速整合。如果项目中需要快速实现一些工作流的相关功能那么用此框架是一个不错的选择。使用版本 用测试方便,这里都使用springBoot和flowable最新的稳定版本 springBoot版本:2.0.1.RELEASE flowable版本:6.3.0Flowable与springBoot项目整合添加依赖将flowable的依赖加入到POM中即可,flowable使用需要一个数据库,这里为了方便我选择mysql org.springframework.boot spring-boot-starter-web org.flowable flowable-spring-boot-starter 6.3.0 mysql mysql-connector-java 5.1.45 org.flowable flowable-spring-boot-starter 6.3.0 mysql mysql-connector-java 5.1.45 flowable配置测试方便flowable配置为默认的即可。为了测试时方便看日志信息,我这里将flowable的定时job功能暂时关闭,其他的都用默认的当然记得要添加一个数据源,我这里添加的mysql,并且记得建好对应的mysql库,如果没有建就自己建一个吧like this:CREATE DATABASE flowable-spring-boot DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; spring: datasource: url: jdbc:mysql://127.0.0.1:3306/flowable-spring-boot?characterEncoding=UTF-8 username: root password: rootflowable:#关闭定时任务JOB async-executor-activate: false这样操作后,flowable与springBoot的整个就完成了! 个人非常方便!然后就可以运行了,初次运行时flowable会将自动执行flowable中的初始化脚本完成工作流所需要的数据表的建立,如果指定的数据库中还未创建过flowable的相关数据表的话。定义流程文件上面已经完成了flowable与springboot的整合了,接下来就可以使用此框架进行流程需要开发了!同样在flowable官方文档中对于流程文件它有这样的建议:The Flowable engine expects processes to be defined in the BPMN 2.0 format, which is an XML standard that is widely accepted in the industry. flowable建议采用业界标准BPMN2.0的XML来描述需要定义的工作流。那么BPMN这个流程文件应该怎么写呢?Typically, such a process definition is modeled with a visual modeling tool, such as the Flowable Designer (Eclipse) or the Flowable Modeler (web application).上官方文档中有看到这样的描述后即便我不会写也不怕了。通常都是通过专门的流程建模工具来画出来的,可以用Eclipse里的流程插件来画。同时Flowable也提供了对应的web管理台可以对流程文件进行创建。详见: Flowable UI applications为了方便测试,这里采用一个开源项目中的流程文件,其描述如下: 报销流程

你可能感兴趣的:(笔记)