欢迎光临
我们一直在努力

一个开箱即用的企业级全栈脚手架:Spring Boot 3 + Vue 3,自带工作流引擎与三层加密

一个开箱即用的企业级全栈脚手架:Spring Boot 3 + Vue 3,自带工作流引擎与三层加密

如果你正在为下一个内部管理系统选型,厌倦了从零搭框架、写权限、接流程的日子,这篇文章值得花五分钟读完。 今天要聊的,是一个可以直接跑起来的全栈管理平台:System——内置完整 RBAC 权限模型、BPMN 风格工作流引擎、请求/响应/敏感字段三层加密、数据看板、站内信、IP 黑名单、MinIO 文件存储等一整套基础设施。

📦 项目地址:https://gitcode.com/John_GitCode/system.git


一、它是什么?

System 是一个基于 Spring Boot 3.5 + Vue 3 的全栈管理系统。它不是 demo 级的玩具项目,而是一个以中小型 SaaS 或企业内部管理系统为目标的脚手架:

  • 后端 298 个 Java 文件(30 个 Controller / 36 个 Mapper / 35 个 Mapper XML / 29 个 ServiceImpl)
  • 前端 62 个 Vue 组件(41 个页面 + 16 个公共组件)
  • 数据库 41 张表 + 2 个视图(sys_ 系统 20 + e_ 业务 15 + wf_ 工作流 6)
  • 9 条内置流程定义,覆盖员工转正/停职/复职/离职、合同续签、工资发放、招聘需求、学生/教师请假

换句话说:用户、角色、菜单、按钮级权限、审批流、日志、字典、加密、文件存储这些"每个系统都要写一遍"的东西,它全都写好了,而且写得不将就。

二、技术栈:主流、不偏门

层选型
后端框架 Spring Boot 3.5.14 / JDK 17
ORM MyBatis 3.0.3
认证鉴权 Sa-Token 1.44(JWT + Redis 持久化)
前端 Vue 3.4 + Vue Router 4 + Pinia + Element Plus 2.4 + Vite 5
流程设计器 LogicFlow 2.x(可视化画布)
缓存 / 存储 Redis + MinIO
数据库 MySQL 8

选型全部是社区主流方案,没有为炫技而引入的冷门库——这对一个要长期维护的脚手架来说,比"技术时髦"重要得多。

三、核心亮点:不是 CRUD 拼接,而是成体系的设计

3.1 图模型驱动的工作流引擎(重头戏)

这是 System 区别于普通后台模板的地方。它的工作流不是简单的"状态机 + 审批记录",而是一个接近 BPMN 语义的小型引擎:

  • 三种网关:排他(SpEL 条件分流)、并行(多 token 分支)、包含(条件多分支)
  • 三种审批策略:会签(全部通过)、或签(任一通过)、投票(按比例)
  • 六种审批人解析:指定用户 / 指定角色 / 指定岗位 / 部门负责人(逐级向上找)/ 申请人 / 上级组织负责人(按层级数上钻)
  • 版本快照:流程定义改版后,在途实例仍按发起时的版本运行,互不影响

最值得一提的:LogicFlow 可视化设计器。节点增删、拖拽连线、审批人配置、网关条件、表单字段,全部在画布上完成,保存即升版、发布才生效:

┌──────────────┐ 保存(+1 版本) ┌──────────────────┐
│ LogicFlow │ ──────────────────► │ wf_process_ │
│ 设计器画布 │ 发布(published) │ definition │
└──────────────┘ │ version=5 │
│ published=4 │
└────────┬─────────┘
│ 发起时快照
▼
wf_process_instance.version=4

一条"学生请假"流程,把引擎能力展示得淋漓尽致——按请假天数逐级路由:

start ─► 班主任 ─► gw1 ─┬─(days≤1)─────────────────────────┐
└─(days>1)─► 年级主任 ─► gw2 ─┬─(≤3)─┤
└─(>3)─► 副校长 ─► gw3 ─┬─(≤5)─┤
└─(>5)─► 校长 ─┤
人事专员备案 ─► end

天数不是用户填的——发起时后端从"请假时间"区间自动派生注入,网关条件统一引用 #formData.days。这种"表单数据回调 + SpEL 路由"的组合,就是真实企业流程里的样子。

3.2 三层安全加密,且全部可开关

层机制说明
传输层 请求/响应加密 前端 RSA-OAEP 交换 AES 密钥,请求体 AES-CBC + HMAC-SHA256 验签 + 时间戳防重放;严格模式下明文请求直接 403
存储层 敏感字段加密 MyBatis 插件无侵入式加解密,@SensitiveField 注解一加,身份证/手机号/邮箱入库即密文;支持 AES-256-GCM 与国密 SM4
访问层 IP 黑名单 过滤器位于链路最前端,支持精确/通配/CIDR 三种规则、临时封禁过期时间,校验异常时放行不拖垮系统

密钥全部走环境变量注入,仓库内不留明文;RSA 私钥按 profile 隔离(local/dev/test/prod 各一把)。

3.3 完整的 RBAC,细到按钮

  • 用户-角色-菜单三级模型,菜单分目录/菜单/按钮三种类型,每个按钮一条权限记录
  • 权限标识约定 {模块}:{资源}:{动作},如 workflow:definition:edit
  • 发起流程的按钮权限独立约定:{businessType}:apply:{操作}
  • 支持"资源打包"批量授权(sys_resource),一键勾选整组菜单
  • 支持运行时切换角色、一人多组织、超管虚拟角色

3.4 基础设施全家桶

  • 数据看板:首页统计卡片 + 环形/条形/趋势图,全部 SVG 自绘,不引 ECharts
  • 站内信:流程待办/结果/撤销自动推送,一次发送按接收人扇出,60 秒未读轮询
  • 数据字典:前端按需懒加载 + 并发去重 + TTL 缓存
  • 操作日志:@OperateLog 注解 + AOP 切面,参数/结果/耗时自动落库
  • Excel 导入导出:Apache POI 封装,DTO 独立带字典转译
  • 文件存储:MinIO 桶策略精细化管理,avatars/ 前缀唯一匿名可读,其余对象一律预签名 URL 访问

四、架构一览:请求链路清晰可循

浏览器 (Vue3 + Pinia + Element Plus + LogicFlow)
│ HTTPS(可选:AES 加密请求 + RSA 密钥交换)
▼
IpBlacklistFilter ──► 黑名单命中直接 403(@Order 最前)
▼
SecureRequestFilter ──► 解密 + 验签 + 时间戳防重放
▼
SaInterceptor ──► JWT 鉴权 + @SaCheckPermission 按钮级权限
▼
Controller ──► OperateLogAspect 切面 + 全局异常处理
▼
Service ──► 业务逻辑 + 事务(工作流引擎 WorkflowRouter 在此)
▼
MyBatis 插件链 ──► SensitiveEncrypt / Decrypt 敏感字段自动加解密
▼
MySQL 8 · Redis · MinIO
◄── SecureResponseFilter 响应加密(仅成功数据)

依赖方向有硬约束:common 包禁止依赖业务模块;employee 通过 WorkflowBusinessHandler 注册中心与 workflow 解耦——新增业务只需实现接口注册为 Spring Bean,流程结束自动回调,这种设计让引擎与业务真正解耦。

五、十分钟跑起来

前置:JDK 17 + Node 18+ + MySQL 8 + Redis 6+(MinIO 可选)。

先把仓库拉下来:

git clone https://gitcode.com/John_GitCode/system.git && cd system

然后按步骤初始化与启动:

# 1. 初始化数据库(先建表,再灌数据)
mysql -u root -p < resources/init_table.sql # 41 张表 + 2 个视图
mysql -u root -p < resources/init_data.sql # 角色/菜单/字典/配置 + 9 条流程

# 2. 配置密钥环境变量(local/test profile 强制要求,无默认值)
export DB_PASSWORD=xxx REDIS_PASSWORD=xxx STORAGE_SECRET_KEY=xxx \\
SA_TOKEN_JWT_SECRET_KEY=xxx EXAM_SECURITY_KEY=xxx

# 3. 启动后端(默认端口 9696)
cd backend && mvn spring-boot:run

# 4. 启动前端(默认端口 9600,/api 自动代理到 9696)
cd frontend && npm install && npm run dev

内置演示账号(密码 Exam@2026):admin(管理员,全菜单)、hr / legal / finance(审批角色)。登录后建议直接走一遍"员工离职审批"流程——部门负责人通过后并行分流法务与财务,双方同时收到待办与站内信,全部通过后 AND 聚合到 HR,HR 通过即触发离职回调。十分钟,你能把引擎的核心能力全部摸一遍。

六、它适合谁?

  • 中小企业的内部管理系统:HR、审批、监控、报表开箱即用
  • 需要工作流的业务系统:可视化设计器 + 网关/策略/版本快照,省掉自研引擎的几个月
  • 对安全有要求的场景:三层加密 + IP 黑名单 + 风险审计,默认姿势正确
  • 学习参考:分层架构、依赖约束、加解密实现、AOP 日志都是可照搬的范式

七、写在最后

很多"后台模板"止步于增删改查加权限;System 想解决的是更前面的问题——让一个新系统从第一天起就站在正确的架构上:权限是成体系的,流程是引擎驱动的,安全是分层的,基础设施是全的。

代码结构清晰、注释充分、README 事无巨细,接手成本低。如果你正准备启动一个管理系统,不妨把它当起点,而不是背景板。

感兴趣的话,直接去仓库看代码、提 issue,或者 star 收藏备用:

👉 https://gitcode.com/John_GitCode/system.git


项目:System — 权限管理系统 | 仓库:https://gitcode.com/John_GitCode/system.git | 后端 Spring Boot 3.5 · 前端 Vue 3 · 流程引擎 LogicFlow

赞(0)
未经允许不得转载:171主机测评 » 一个开箱即用的企业级全栈脚手架:Spring Boot 3 + Vue 3,自带工作流引擎与三层加密
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址