
Activiti专题 - 搭建到SpringBoot
Activiti,工作流引擎。这玩意其实不难学,难就难在如何和业务关联。本文讲解如何给他集成到SpringBoot里。
首先
创建一个SpringBoot项目,没这玩意下面的步骤都做不了了
导入依赖
pom.xml:
1 | <dependency> |
这里假设你的项目集成了Mysql并配置了数据源
SpringBoot配置文件
application.yml
1 | spring: |
详解
1 | spring.activiti.database-schema-update: false |
databaseSchemaUpdate配置项可以设置流程引擎启动和关闭时数据库执行的策略。databaseSchemaUpdate有以下四个值:
- false:false为默认值,设置为该值后,Activiti在启动时,会对比数据库表中保存的版本,如果版本不匹配时,将在启动时抛出异常。
- true:设置为该值后,Activiti会对数据库中所有的表进行更新,如果表不存在,则Activiti会自动创建。
- create-drop:Activiti启动时,会执行数据库表的创建操作,在Activiti关闭时,执行数据库表的删除操作。
- drop-create:Activiti启动时,执行数据库表的删除操作在Activiti关闭时,会执行数据库表的创建操作。
正常情况下,设置为true,跑一遍项目,然后注释掉就可以了
1 | spring.activiti.check-process-definitions: false |
activity默认校验resources下的processes文件夹里的流程文件,如果没有processes目录并且目录下没有流程文件会报错
然后把这个配置写上去就不报错了,意思是不再用文件的形式去保存流程模型
1 | spring.activiti.history-level: full |
对于历史数据,保存到何种粒度。history-level属性有点像log4j的日志输出级别,该属性有以下四个值:
- none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
- activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
- audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
- full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
更改ID生成策略
永远不要相信自带的ID生成器
实现IdGenerator接口并重写getNextId方法
1 | public class ActivityUUIDGenerator implements IdGenerator { |
让他生效
1 |
|
更改启动类
1 |
至于为啥要改,你开一下项目就知道了
完事儿了
至此你的Activiti已经集成完了🎉
因为内容比较多,所以教程分三个部分
下一个会教你设计模型和集成业务