activiti7 - SpringBoot集成
概念:
BPM(Business Process Management)- 业务流程管理,是一种规范化的构造端到端的业务流程,以持续的提高组织业务效率。常见商业管理教育如EMBA、MBA等均将BPM包含在内。
BPMN(Business Process Model AndNotation)- 业务流程模型和符号 是由BPMI(BusinessProcess Management Initiative)开发的一套标准的业务流程建模符号,使用BPMN提供的符号可以创建业务流程。
当前使用最广泛工作流引擎对比:
技术组成 | Activiti7.1 | jBPM7.25 | Camunda | Flowable6.3.1 |
---|---|---|---|---|
数据库持久层ORM | MyBatis3.4.2 | JPA2.2二次封装 | Hibernate4.2.0 | JPA 2.2 |
持久化标准 | JPA规范 | JPA规范 | JPA规范 | JPA规范 |
事务管理 | MyBatis机制/Spring事务控制 | Bitronix,基于JTA事务管理 | hibernate机制/Spring事务控制 | hibernate机制,Spring事务控制 |
分布式事务 | MyBatis机制/Spring事务控制 | Bitronix,基于JTA事务管理 | 补偿机制,SAGA 模式 | |
数据库连接方式 | Jdbc/DataSource | Jdbc/DataSource | Jdbc/DataSource | Jdbc/DataSource |
支持数据库 | Oracle、SQL Server、MySQL | Oracle、SQL Server、MySQL | Oracle、SQL Server、MySQL、db2 | Oracle、SQL Server、MySQL、db2 |
设计模式 | Command模式、观察者模式等 | |||
内部服务通讯 | Service间通过API调用 | 基于Apache Mina异步通讯 | Service间通过API调用 | Service间通过API调用 |
集成接口 | SOAP、Mule、RESTful | 消息通讯 | SOAP、Mule、RESTful | SOAP、Mule、RESTful |
支持的流程格式 | BPMN2、xPDL、jPDL等 | 目前仅只支持BPMN2 xml | BPMN2、xPDL、jPDL等 | BPMN2、xPDL、jPDL等 |
引擎核心 | PVM(流程虚拟机) | Drools | PVM | |
架构 | spring boot 2.1.2, spring 5.1.4 | Drools Flow | activiti5 | spring boot 1.5,spring 4.3, spring.security 4.2 |
支持J2EE | 兼容 | 天然支持EJB,J2EE | 兼容 | 兼容 |
技术前身 | jBPM3、jBPM4 | Drools Flow | activiti5 | activiti5 |
API文档 | swagger1.5 | swagger1.5 | ||
日志 | slf4j1.7门面,logback1.2.3 | slf4j1.5门面, log4j | slf4j1.7门面,logback1.2.3 | slf4j1.7门面 |
所属公司 | Alfresco | jBoss.org | Camunda | Flowable |
1|0表结构
表前缀规则
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 接口,存储流程实例和用户任务等动态数据
2|0设计架构
2|1服务接口
service名称 | service作用 |
---|---|
RepositoryService | activiti的资源管理类 |
RuntimeService | activiti的流程运行管理类 |
TaskService | activiti的任务管理类 |
HistoryService | activiti的历史管理类 |
ManagerService | activiti的引擎管理类 |
2|2任务监听
任务监听器是发生对应的任务相关事件时执行自定义 java 逻辑 或表达式。 任务相当事件包括:
Create:任务创建后触发
Assignment:任务分配后触发
Delete:任务完成后触发
All:所有事件发生都触发
定义任务监听类,且类必须实现 org.activiti.engine.delegate.TaskListener 接口
2|3生命周期
3|0项目集成
maven引入
注意:排除activiti自带的mybatis,防止与项目的mybatis冲突
yml配置
注意: 启动如果bean生成失败,添加allow-bean-definition-overriding:true 允许bean被覆盖解决
执行流程代码
- 代码流程从发布-执行-完成-结束任务
__EOF__
作 者:走马观花
出 处:https://www.cnblogs.com/cool-fun/p/17165234.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2020-02-28 window系统mysql安装后获取默认密码