前言

JBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,JBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官网已经推出了JBPM7的beta版本;Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。由此可以推测JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧。

环境软件版本SpringBoot1.5.10

activiti-spring-boot-starter-basic6.0

搭建

花了半天的时间对比了下JBPM 和 Activit,以及两个工作流的不同版本,最终选择了 Activiti6 来实现,理由如下:JBPM 网上集成的资料甚少,且新版本相对比较笨重。

Activiti 相对丰富的资料,并且高度与 SpringBoot 集成,之所以选择 Activiti6 版本,是由于目前只有版本6的集成 starter。

创建 pom.xml:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.itstyle.bpm

spring-boot-activiti

jar

0.0.1-SNAPSHOT

spring-boot-activiti

http://maven.apache.org

UTF-8

org.springframework.boot

spring-boot-starter-parent

1.5.10.RELEASE

org.springframework.boot

spring-boot-starter-web

org.activiti

activiti-spring-boot-starter-basic

6.0.0

spring-boot-activiti

配置 application.properties:server.context-path=/

server.port=8080

server.session-timeout=60

server.tomcat.max-threads=100

server.tomcat.uri-encoding=UTF-8

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/spring-boot-activiti?characterEncoding=utf-8&useSSL=false

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# Specify the DBMS

spring.jpa.database = MYSQL

# Show or not log for each sql query

spring.jpa.show-sql = true

# DDL mode. This is actually a shortcut for the "hibernate.hbm2ddl.auto" property. Default to "create-drop" when using an embedded database, "none" otherwise.

spring.jpa.hibernate.ddl-auto = update

# Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.

spring.jpa.hibernate.naming.strategy = org.hibernate.cfg.ImprovedNamingStrategy

# stripped before adding them to the entity manager)

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

#每次应用启动不检查Activiti数据表是否存在及版本号是否匹配,提升应用启动速度

spring.activiti.database-schema-update=false

#保存历史数据级别设置为full最高级别,便于历史数据的追溯

spring.activiti.history-level=full

声名为配置类 ActivitiConfig:@Configuration//声名为配置类,继承Activiti抽象配置类

public class ActivitiConfig extends AbstractProcessEngineAutoConfiguration {

@Bean

@Primary

@ConfigurationProperties(prefix = "spring.datasource")

public DataSource activitiDataSource() {

return DataSourceBuilder.create().build();

}

@Bean

public SpringProcessEngineConfiguration springProcessEngineConfiguration(

PlatformTransactionManager transactionManager,

SpringAsyncExecutor springAsyncExecutor) throws IOException {

return baseSpringProcessEngineConfiguration(

activitiDataSource(),

transactionManager,

springAsyncExecutor);

}

}

启动项目,会自动生成28张表:act_ge_ 通用数据表,ge是general的缩写

act_hi_ 历史数据表,hi是history的缩写,对应HistoryService接口

act_id_ 身份数据表,id是identity的缩写,对应IdentityService接口

act_re_ 流程存储表,re是repository的缩写,对应RepositoryService接口,存储流程部署和流程定义等静态数据

act_ru_ 运行时数据表,ru是runtime的缩写,对应RuntimeService接口和TaskService接口,存储流程实例和用户任务等动态数据

演示

一个简单的请假流程演示:

说明

其实开源社区有不少工作流的案例,但都不是自己想要的类型。由于工作需要,会逐步分享开发中所遇到的疑难问题和小细节,后面会开源一个简单的工作流完整实例,敬请关注。

jbpm springboot mysql_SpringBoot开发案例之整合Activiti工作流引擎相关推荐

  1. SpringBoot开发案例之整合Activiti工作流引擎

    前言 JBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,JBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官 ...

  2. # SpringBoot 整合 Activiti 工作流框架

    SpringBoot 整合 Activiti 工作流框架 Activiti 介绍 Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调 ...

  3. Spring整合Activiti工作流

    代码地址如下: http://www.demodashi.com/demo/11911.html 一. 前期准备 安装必要的开发环境 eclipse/intellij+maven 3.5.x + to ...

  4. Activiti工作流引擎使用

    Activiti工作流引擎使用 1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 1.1 我与工作流引擎 在第一家公司工作的时候主要任务就是开发OA系统,当然基本 ...

  5. Activiti工作流引擎的使用

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Activiti工作流引擎使用 1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百 ...

  6. Activiti工作流引擎使用(Activiti的乱码问题)

    Activiti工作流引擎使用(Activiti的乱码问题) 1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 Activiti与JBPM5?对于Activiti ...

  7. activiti工作流引擎入门教程

    activiti简介 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准. Activiti是一种轻量级,可嵌入的BPM引擎,而且 ...

  8. SprinBoot 集成 Flowable/Activiti工作流引擎

    文章目录 一. Flowable工作流引擎 1. flow 2. flowable 3. cims 4. RuoYi-flowable 5. springboot-flowable-modeler 6 ...

  9. 【Activiti】 Activiti工作流引擎 - 提交审批和审批处理示例详解 【精品】

    在上一篇的文章中,我给大家分享了Activiti工作流引擎的API的封装代码,通过我们自己封装的代码,在实际的项目中我们就可以进行工作流相关的开发了.以下内容我们分三个部分:提交审批,审批列表查询,审 ...

最新文章

  1. 如何进行基因组组装?
  2. ubuntu 16.04 分辨率只有800×600问题解决
  3. SSH框架联合开发(Annotation精简Spring的配置文件)
  4. 28.特性trait.rs
  5. 13寸笔记本电脑尺寸_2019年五款最好的13英寸笔记本电脑(windows)
  6. 使用直接内存时可以更快
  7. pandas用众数填充缺失值_7步搞定数据清洗-Python数据清洗指南
  8. ajax如何做到异步交互,1.ajax简单实现异步交互
  9. MiniGui移植详解1【转】
  10. 互换性与技术测量教材pdf_《互换性与技术测量》赵燕【pdf】
  11. 外卖cps美团饿了么小程序 每天领取外卖优惠券 下单直接抵扣现金(外卖cps返利分销小程序源码)
  12. Sqlserver 中的Iif语句
  13. matlab 投影法,梯度投影法 MATLAB程序可执行
  14. COB--COF--COG--TAB--TCP
  15. 4相5线步进电机驱动原理
  16. 电气器件系列十:热继电器FR\KRE
  17. c语言集合运算有菜单,怎样用C语言实现集合运算
  18. 网页保存为图片及高清截图的优化 | canvas跨域图片配置
  19. SVN Upgrade working copy 和 the working copy is currupt and connot be upgraded解决方法
  20. 【TypeScript入门】TypeScript入门篇——函数

热门文章

  1. Spring 的设计初衷
  2. Spring-Cloud中的负载
  3. Executor家族的辨析
  4. Spring Boot定时任务-Quartz基本使用
  5. 总线控制内部eep_CAN总线在新能源汽车中的通信网络设计及应用分析
  6. c++用什么软件编程_为什么要学习“C”编程语言?
  7. FreeSql与SqlSugar性能测试对比
  8. 对CAML查询语句的几点小记
  9. 网狐框架分析八--web登录游戏大厅流程
  10. jQuery页面顶部下拉广告