一篇文章让你轻松搞定springboot+activiti

最近项目中用到activiti工作流,项目具体项目中流程的东西不是本人负责,但多学点东西总归是好的,所以待项目空闲下来,自己学习一下。仅供自己及爱好学习者参考。
第一节:搭建activiti流程编辑器(Activiti Designer)
流程编辑可有三种方式:

  1. eclipse在线安装
    打开Eclipse -> Help -> Install New SoftWare-> Add
    然后按照如下对话框输入:
    在这里插入图片描述
    http://www.activiti.org/designer/update/
    后续下一步下一步即可,安装成功后,右键—new—other会出现如下:
    在这里插入图片描述
    点击activiti Diagram新建一个流程
    在这里插入图片描述

  2. 下载离线包安装(自行百度)

  3. Activity官网下载war包部署,通过activiti-explorer在线编辑
    官网下载地址:https://www.activiti.org/get-started
    在这里插入图片描述
    点击下载即可,网上5.0版本教程比较多,自行下载版本学习即可,我下载的5.0版本。
    解压下载下来的zip包
    在这里插入图片描述
    找到以下路径的war包,可以直接放到tomcat的webapps目录下,部署运行,默认采用的内存下H2数据库,如果想切换数据库,则解压war包,找到以下路径的db.properties文件,更改为自己的数据库即可:
    在这里插入图片描述在这里插入图片描述
    更改完数据库后,将解压的文件夹直接放到tomcat的webapps目录下,启动tomcat,访问http://127.0.0.1:8088/activiti-explorer/,登录进入流程编辑器:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    第二节:activiti工程搭建
    activiti搭建环境:
    jdk:1.8
    mysql:5.7
    activity:6.0.0
    idea:eclipse
    框架:springboot + maven

  4. 新建一个springboot maven工程,引入相关Jar包,pom.xml如下:
    在这里插入图片描述

  5. 启动类中排除掉安全认证配置
    在这里插入图片描述

  6. 数据库配置,application.yml文件配置:
    在这里插入图片描述
    如果项目中配置多数据源,比如业务库和工作流库不在一起,以下配置可以指定工作流数据库:
    在这里插入图片描述
    对数据源配置如下:
    在这里插入图片描述
    注意:我的springboot是用的2.0.3版本的,所以自定义的activiti数据源是jdbc-url,而不是url,不同版本不同,请注意,否则会报java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.错误

  7. activiti配置
    下面配置了几个常用的配置
    在这里插入图片描述

常用配置总结:
asyncExecutorEnabled属性设置设置true后将代替那些老的Job executor
spring.activiti.async-executor-enabled=false
spring.activiti.job-executor-activate=false
asyncExecutorActivate是指示activiti在流程引擎启动就激活AsyncExecutor,异步
spring.activiti.async-executor-activate=

校验流程文件,默认校验resources下的processes文件夹里的流程文件
spring.activiti.check-process-definitions=

使用自定义mybatis-mapper
spring.activiti.custom-mybatis-mappers=
spring.activiti.custom-mybatis-xmlmappers=

数据源指定
spring.activiti.database-schema=

建表规则
flase: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。
true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。
create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。
drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)

spring.activiti.database-schema-update=false
检测历史表是否存在
spring.activiti.db-history-used=false

检测身份信息表是否存在
spring.activiti.db-identity-used=false
流程部署名称
spring.activiti.deployment-name=

记录历史等级 可配置的历史级别有none, acitivity, audit, all
spring.activiti.history-level=

spring jpa使用
spring.activiti.jpa-enabled=false

邮件发送服务配置
spring.activiti.mail-server-default-from=
spring.activiti.mail-server-host=
spring.activiti.mail-server-password=
spring.activiti.mail-server-port=
spring.activiti.mail-server-use-ssl=
spring.activiti.mail-server-use-tls=
spring.activiti.mail-server-user-name=

自定义流程文件位置
spring.activiti.process-definition-location-prefix=
spring.activiti.process-definition-location-suffixes=

activiti rest 配置
spring.activiti.rest-api-enabled=false
spring.activiti.rest-api-mapping=
spring.activiti.rest-api-servlet-name=

配置踩过的坑:
1.启动测试时。如果报错 class path resource [processes/] cannot be resolved to URL because it does not exist 时
解决办法:方法1:你要在resources新建一个processes 文件夹,然后画个流程图。 随便一个。然后放到processes/路径下。然后再启动就可以了。

方法2: 配置properties或yml时
加上 spring.activiti.check-process-definitions=false

2.启动报错org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.activiti.spring.boot.SecurityAutoConfiguration’: Initialization of bean failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy;
解决办法:启动类上加上 @SpringBootApplication(exclude = SecurityAutoConfiguration.class)即可;因为activiti-spring-boot-starter-basic中引用了spring-boot-starter-security,前面启动类截图中也标明了。

好了,以上就是整个springboot集成activiti的简单配置,启动成功后,会在数据库自动创建表:
在这里插入图片描述
本文主要记录自己搭建activit项目的一个步骤和出错的点,项目搭建成功之后,后续内容就是画流程图和流程api的使用最后和具体业务对接使用了,待学习完后再行总结后续内容。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值