Activiti5工作流实战:从零搭建一个请假审批系统(SpringBoot集成版)

Activiti5工作流实战:从零搭建一个请假审批系统(SpringBoot集成版)

最近在帮几个初创团队做内部系统升级,发现一个挺普遍的需求:如何快速、低成本地给现有的业务系统加上一套像样的审批流程?尤其是像请假、报销、采购这类高频、规则相对固定的场景。很多团队一开始用状态字段硬编码,随着业务复杂,代码里到处是if-else,维护起来简直是噩梦。这时候,引入一个成熟的工作流引擎就显得非常必要了。

在Java生态里,Activiti是一个绕不开的选择。它轻量、开源、社区活跃,而且与Spring家族集成起来非常丝滑。今天,我就以最常见的“员工请假审批”为例,带你从零开始,用Activiti5和SpringBoot搭一套可用的审批系统。我们不止是跑通一个Demo,更会深入到流程设计、表单绑定、节点跳转这些实际开发中必然会遇到的细节,并聊聊在选型时,Activiti和它的“前辈”JBPM到底有哪些不同。

1. 环境准备与项目初始化

搭建任何技术栈,第一步永远是准备好趁手的“兵器”。对于我们的SpringBoot + Activiti5项目,你需要确保本地环境有JDK 8或以上版本,以及Maven 3.6+。我个人的习惯是使用IntelliJ IDEA,它在Spring项目和数据库可视化方面确实能省不少事。

首先,我们通过Spring Initializr快速生成项目骨架。核心依赖除了SpringBoot的Web和JPA,最关键的就是Activiti的Spring Boot Starter。

<!-- pom.xml 关键依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter-basic</artifactId>
    <version>5.22.0</version> <!-- 请注意版本号 -->
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

这里有个小坑需要注意:Activiti的不同版本与SpringBoot的兼容性。我推荐使用5.22.0这个相对稳定且文档齐全的版本。配置完依赖后,在application.yml里配置数据库连接和Activiti的基本属性。

# application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/activiti_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

# Activiti配置
activiti:
  database-schema-update: true # 自动更新数据库表结构
  db-history-used: true # 使用历史表
  history-level: audit # 历史记录级别,建议audit以记录详细信息
  check-process-definitions: true # 启动时检查流程定义

启动项目,如果控制台没有报错,并且数据库中自动生成了数十张以ACT_开头的表,那么恭喜你,Activiti环境已经成功集成进来了。这些表是Activiti运行的核心,大致可以分为几类:

表前缀 含义 主要作用
ACT_RE_* 存储 (Repository) 存放静态的流程定义、部署资源(如图片、BPMN文件)
ACT_RU_* 运行时 (Runtime) 存储正在运行的流程实例、任务、变量等,流程结束会清理
ACT_HI_* 历史 (History)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值