云计算百科
云计算领域专业知识百科平台

【开源推荐】心念后台 xn-admin:Spring Cloud 微服务后端 + 四套前端(React / Vue),Apache 2.0 可商用

心念后台 xn-admin:Spring Cloud 微服务后端 + 四套前端(React / Vue)架构解析

摘要:心念后台(xn-admin) 是一套基于 Spring Cloud 微服务 的完整开源后台管理系统,采用 Apache 2.0 协议。项目包含 1 个微服务后端(网关 + 系统 / 文件 / 日志 / 任务四业务服务)与 4 套管理端前端(React 19 + Ant Design、Vue3 + TS、Vue3 + JS、Vue2 风格),共用同一网关 API。后端基于 Java 21 + Spring Boot 4 + Nacos + MySQL + Redis + MinIO + Quartz,提供 RBAC 权限、动态路由、page-ui 驱动 CRUD、系统监控、日志审计、代码生成、文件分片上传等能力;前端提供 30+ 通用业务组件,支持多布局与主题切换。本文从架构设计、技术栈选型、工程化实践等角度,分析该项目的实现思路,供学习 Spring Cloud 微服务或中后台系统设计的开发者参考。 关键词:后台管理系统、Spring Boot 4、Spring Cloud、React 19、Vue 3、Ant Design、Element Plus、RBAC、开源、可商用


一、项目地址与体验入口

心念后台(xn-admin) 采用 Apache License 2.0 开源,个人学习、自用部署、商业项目均可使用。

1.1 源码仓库

仓库技术栈GiteeGitHub在线演示
xn-admin-cloud Java 21 + Spring Boot 4 + Spring Cloud Gitee GitHub 网关 :8088(后端必需)
xn-admin-react-ts React 19 + TypeScript + Ant Design Gitee GitHub 在线演示
xn-admin-vue3-ts Vue 3 + TypeScript + Element Plus Gitee GitHub 在线演示
xn-admin-vue3-js Vue 3 + JavaScript + Element Plus Gitee GitHub 在线演示
xn-admin-vue2-js Vue 3 + JavaScript + Element Plus(Options API) Gitee GitHub 在线演示

说明:开源范围为一微服务后端 + 四套管理端,共用同一网关 API。

1.2 快速入口

类型地址
React 版体验 react.xinniankeji.vip
Vue3 + TS 版体验 vue3-ts.xinniankeji.vip
本地网关 127.0.0.1:8088
健康检查 actuator/health

二、项目简介

2.1 这是什么?

心念后台 是一套面向中后台场景的完整开源管理系统,不是「只有几个页面的 Demo」,而是从登录鉴权、权限体系、组织管理,到文件上传、定时任务、系统监控、日志审计、代码生成等企业级能力一应俱全的可落地方案。

整体采用 前后端分离 + 微服务 架构:

  • 一个后端:xn-admin-cloud,按网关 / 系统 / 文件 / 日志 / 任务拆成 5 个 Spring Boot 服务
  • 四套管理端:React、Vue3+TS、Vue3+JS、Vue2 风格(Options API),共用同一套 REST API,按团队技术栈自由选型

2.2 为什么要做四套前端?

考虑到前端技术栈的多样性,不同团队、不同项目对框架和语言各有偏好:有人用 React,有人用 Vue;有人习惯 TypeScript,有人更熟悉 JavaScript;写法上也有 Composition API 与 Options API 之分。

心念后台因此提供 四套管理端,对接同一套后端 API,业务能力一致,各自采用原生 UI 风格(React 用 Ant Design,Vue 用 Element Plus),避免「换皮仿壳」:

  • React 19 + TypeScript + Ant Design(xn-admin-react-ts)
  • Vue 3 + TypeScript + Element Plus(xn-admin-vue3-ts)
  • Vue 3 + JavaScript + Element Plus(xn-admin-vue3-js)
  • Vue 3 + JavaScript + Options API(xn-admin-vue2-js)
  • 四套前端开发端口错开(1800–1803),可同时联调同一后端,方便按团队习惯选型,也便于横向对比不同技术栈的实现方式。

    2.3 核心特色(区别于普通 Admin 模板)

    特色说明
    真·微服务 网关 + system / file / log / job 四业务服务,Nacos 注册发现,不是单体改个包名
    RBAC + 数据权限 角色、菜单、按钮级权限;数据范围支持全部 / 本单位及下级 / 本单位 / 本人
    动态路由 / 菜单 路由与菜单由后端配置,前端登录后按需注册,改菜单不用发版
    page-ui 驱动 CRUD 列表页搜索区、表格列、工具栏按钮可由后端 page-ui 配置,减少重复代码
    30+ 业务组件 验证码、Cron 编辑器、分片上传、字典选择、组织选择、Excel 导入导出等
    系统监控 + 日志 在线用户、服务 / Redis / SQL 监控;登录 / 操作 / 异常 / 任务四类日志
    工程化规范 后端 Spotless + SpotBugs + JaCoCo;前端 ESLint/oxlint + Husky + Conventional Commits
    Apache 2.0 可商用 学习、自用、二次开发、闭源商用均可,无授权门槛

    2.4 技术栈总览

    项目技术栈定位
    xn-admin-cloud Java 21 + Spring Boot 4 + Spring Cloud + Nacos + MySQL + Redis + MinIO + Quartz 微服务后端;四套管理端共用同一网关 API(:8088)
    xn-admin-react-ts React 19 + TypeScript + Ant Design + Zustand + Vite 8 面向 React 生态;Ant Design 原生 UI,端口 1800
    xn-admin-vue3-ts Vue 3 + TypeScript + Element Plus + Pinia + Vite 8 面向 Vue 3 + TypeScript;Element Plus UI,端口 1803
    xn-admin-vue3-js Vue 3 + JavaScript + Element Plus(Composition API) 面向 Vue 3 + JavaScript;Composition API 写法,端口 1802
    xn-admin-vue2-js Vue 3 + JavaScript + Element Plus(Options API) 面向 Vue 3 + JavaScript;Options API 写法,端口 1801

    四套管理端业务能力一致,差异仅在框架、语言与 UI 组件库,可按团队习惯任选其一对接后端。

    选型建议:

    • 团队主栈是 React → xn-admin-react-ts(Ant Design)
    • 团队主栈是 Vue,且用 TypeScript → xn-admin-vue3-ts(Element Plus)
    • 团队主栈是 Vue,且用 JavaScript → xn-admin-vue3-js(Composition)或 xn-admin-vue2-js(Options API)
    • 只需后端、前端自研 → 拉取 xn-admin-cloud,对接网关 8088 即可

    三、整体架构

    ┌─────────────────────────────────────────────────────────────┐
    │ 四套管理端前端 │
    │ React (1800) │ Vue3+TS (1803) │ Vue3+JS (1802) │ Vue2 (1801) │
    └──────────────────────────┬──────────────────────────────────┘
    │ /api /uploads /ws

    ┌────────────────────────┐
    │ xn-gateway :8088 │ ← 统一网关入口
    └───────────┬────────────┘
    │ Nacos 服务发现 (lb://)
    ┌─────────────────┼─────────────────┬──────────────┐
    ▼ ▼ ▼ ▼
    xn-system:8081 xn-file:8082 xn-log:8083 xn-job:8084
    登录/RBAC/组织 文件/分片上传 各类日志 定时任务
    │ │ │ │
    └─────────────────┴─────────────────┴──────────────┘

    MySQL │ Redis │ MinIO │ Nacos
    (docker compose 一键拉起)

    网关路由规则:

    路径转发服务
    /api/files/** xn-file
    /api/logs/** xn-log
    /api/jobs/** xn-job
    /api/**、/uploads/**、/ws/** xn-system

    四、后端:xn-admin-cloud

    4.1 技术栈

    类别技术
    语言 / 运行时 Java 21
    框架 Spring Boot 4、Spring Cloud Gateway
    注册中心 Nacos
    持久层 JPA + Flyway 数据库迁移
    缓存 Redis
    对象存储 MinIO
    定时任务 Quartz
    接口文档 OpenAPI / Swagger
    构建 Maven 多模块 + Maven Wrapper

    4.2 微服务拆分

    服务端口职责
    xn-gateway 8088 统一入口,经 Nacos lb:// 转发
    xn-system 8081 登录鉴权、RBAC、组织岗位、字典、配置、公告站内信、监控、回收站、代码生成等
    xn-file 8082 文件浏览、上传、分片上传、MinIO 预览
    xn-log 8083 登录 / 操作 / 异常 / 任务日志
    xn-job 8084 Quartz 定时任务 CRUD、启停、立即执行

    4.3 核心能力

    • 认证与会话:JWT 登录 / 登出 / 续期,图形验证码、滑块验证码
    • 权限体系:RBAC + 数据权限(全部 / 本单位及下级 / 本单位 / 本人)
    • 动态路由:后端配置菜单与路由,前端按需注册
    • page-ui 驱动 CRUD:列表页搜索、表格、按钮由后端配置驱动
    • 内容运营:公告(含 WebSocket 推送)、站内信
    • 系统监控:在线用户、服务状态、Redis、SQL 监控
    • 系统工具:文件管理、定时任务、回收站、代码生成、接口文档

    4.4 三步本地启动

    第 1 步:启动中间件

    cd xn-admin-cloud
    docker compose up -d

    会拉起 MySQL(3306)、Redis(6379)、Nacos(8849)、MinIO(9000)。Nacos 首次约 30–60 秒就绪。

    第 2 步:启动五个后端服务

    Windows:

    scripts\\run-dev.bat

    Linux / macOS:

    chmod +x mvnw scripts/run-dev.sh
    ./scripts/run-dev.sh

    网关地址:http://127.0.0.1:8088 健康检查:http://127.0.0.1:8088/actuator/health

    第 3 步:启动任一前端

    另开终端,进入对应前端仓库执行 npm install && npm run dev 即可。


    五、前端:四套管理端详解

    5.1 四套前端对比

    四套前端对接同一网关 8088,Vite 开发服务器代理 /api、/uploads、/ws 到网关,端口错开便于同时联调:

    仓库技术栈UI 库状态管理开发端口在线演示
    xn-admin-react-ts React 19 + TS Ant Design 6 Zustand 5 1800 演示
    xn-admin-vue3-ts Vue 3 + TS Element Plus Pinia 4 1803 演示
    xn-admin-vue3-js Vue 3 + JS Element Plus Pinia 4 1802 演示
    xn-admin-vue2-js Vue 3 + JS (Options) Element Plus Pinia 4 1801 演示

    三套 Vue 管理端界面与功能一致(共用同一套 Element Plus 截图);React 版业务能力对齐,但使用 Ant Design 原生视觉(主色 #1677ff、浅色侧栏 + 白顶栏),不做 Element 仿壳。

    下文以 React 版 为主展示界面与工程结构。

    5.2 React 版技术栈

    类别技术
    框架 React 19、TypeScript 6、Vite 8
    UI Ant Design 6、@ant-design/icons
    状态 / 路由 Zustand 5、React Router 7
    请求 Axios
    图表 / 编辑器 ECharts、wangEditor
    Excel ExcelJS、xlsx
    工程化 oxlint、Prettier、Husky、commitlint

    5.3 与 Vue 基准的差异

    项Vue 基准 (xn-admin-vue3-ts)React 版 (xn-admin-react-ts)
    UI 库 Element Plus Ant Design
    状态管理 Pinia Zustand
    路由 vue-router addRoute 动态 RouteObject 挂载
    视图目录 src/views src/pages
    按钮权限 v-permission <Auth> / usePermission
    客户端标识 xn-admin-vue3-ts xn-admin-react-ts

    业务能力与 Vue 基准对齐,视觉刻意区分:React 版使用 Ant Design 原生风格,不做 Element 仿壳。

    5.4 React 版目录结构

    src/
    ├── api/ # 接口模块(auth、user、role、route、notice、logs…)
    ├── components/ # 通用组件(Xn* / Auth / ThemePicker…)
    ├── config/ # 应用 / 客户端 / 主题等配置
    ├── hooks/ # usePageUi、usePermission 等
    ├── layouts/ # AdminLayout 及 Side / Top / Mix / Columns
    ├── pages/ # 业务页面(由 view-loader 懒加载)
    ├── router/ # 静态路由 + 动态注册与守卫
    ├── stores/ # Zustand:user、permission、menu、tagsView、theme…
    ├── styles/ # 全局样式
    ├── types/ # 类型定义
    └── utils/ # request、icons、excel、download、view-loader…

    典型列表页组合:

    XnPageLayout
    ├── aside → XnTreePanel(可选)
    ├── search → XnSearch
    ├── toolbar → XnButton + XnExport
    └── table → XnTable

    配置通常来自后端 page-ui 与 <XnAuth> 权限控制。

    5.5 通用组件体系(React 示例)

    React 版提供 30+ 以 Xn 前缀命名的业务组件,与 Vue 基准一一对应,每个组件目录下有独立 README。典型列表页组合:

    组件作用
    XnPageLayout 列表页骨架(侧栏 + 搜索 + 工具栏 + 表格)
    XnSearch 配置化搜索表单
    XnTable 配置化表格(支持 page-ui、列个性化)
    XnButton / XnExport / XnImport 工具栏按钮、Excel 导出 / 导入
    XnTreePanel 左侧树形筛选(如单位树)
    XnAuth 按钮级权限(对应 Vue 的 v-permission)
    XnUpload 大文件分片上传
    XnCron Quartz Cron 表达式编辑器
    XnCaptcha 图形 / 滑块验证码
    XnThemePicker 主题与布局切换

    Vue 版同样提供 xnPageLayout、xnTable、xnSearch 等对应组件,命名风格为 camelCase。

    5.6 React 版快速启动

    cd xn-admin-react-ts
    npm install
    npm run dev

    浏览器访问:http://localhost:1800

    Vite 已代理到网关:

    前缀目标
    /api http://localhost:8088
    /uploads http://localhost:8088
    /ws http://localhost:8088(WebSocket)
    /swagger-ui http://localhost:8088

    生产构建:

    npm run build # tsc + vite 构建
    npm run preview # 本地预览
    npm run ci # typecheck + lint + format + build 全量检查


    六、界面预览(React + Ant Design)

    图片公网地址:https://xinniankeji.vip/docs/images/xn-admin-react-ts/。CSDN 粘贴 Markdown 后若「转存失败」,可在编辑器里用「图片 → 本地上传」从 xn-admin-react-ts/docs/images/ 上传。

    6.1 登录与首页

    登录页 — 支持图形 / 滑块验证码、JWT 鉴权

    登录页

    工作台首页 — 多布局、主题可切换、公告 WebSocket 推送

    首页


    6.2 组织与权限

    用户管理 — CRUD、导入导出、启停、数据权限

    用户管理

    角色与权限 — RBAC、按钮级权限、动态路由

    角色列表

    角色权限

    路由管理 — 后端配置菜单,前端动态注册

    路由管理


    6.3 系统监控

    服务监控 — CPU、内存、JVM、磁盘等

    服务监控

    在线用户 — 实时在线列表、强制下线

    在线用户

    Redis / SQL 监控

    缓存监控

    SQL 监控


    6.4 日志管理

    登录日志、操作日志、异常日志、任务日志,均支持查询、详情、删除、清空、导出。

    登录日志

    操作日志

    异常日志


    6.5 系统工具

    定时任务 — Quartz CRUD、启停、立即执行

    定时任务

    代码生成 — 根据数据表一键生成前后端代码

    代码生成

    接口文档 — 内置 Swagger UI

    接口文档

    文件管理 — 浏览、上传、分片上传、MinIO 存储

    文件管理


    6.6 其它模块(可选配图)

    字典管理

    字典管理

    公告管理

    公告管理

    系统配置

    系统配置

    安全策略

    安全策略

    回收站

    回收站

    个人中心

    个人信息


    七、功能清单(后端 + 前端闭环)

    认证与权限

    • JWT 登录 / 登出 / 会话刷新
    • 图形验证码、滑块验证码
    • RBAC 角色权限 + 数据权限
    • 动态菜单 / 路由
    • 按钮级权限(React:<Auth>;Vue:v-permission)

    组织与基础数据

    • 用户、单位(树形)、岗位
    • 字典类型与字典数据
    • Excel 导入导出

    系统设置

    • 系统配置、登录页配置
    • 远程存储(MinIO 等)
    • 安全策略(锁定、限流、密码规则)
    • 个人 UI 偏好、表格列个性化

    内容运营

    • 公告(发布、撤回、已读、WebSocket 推送)
    • 站内信、联系与捐赠

    监控与日志

    • 在线用户、服务监控、Redis 监控、SQL 监控
    • 登录 / 操作 / 异常 / 任务日志

    系统工具

    • 文件管理(含大文件分片上传)
    • 定时任务(Quartz)
    • 回收站、代码生成
    • 接口文档(Swagger UI)

    前端工程特性

    • 多布局:侧边栏 / 顶栏 / 混合 / 分栏
    • 主题:自定义主色与背景
    • 页面标签栏(TagsView)
    • 30+ 通用业务组件(XnTable、XnSearch、XnCron、XnUpload 等)
    • page-ui 配置化 CRUD,减少重复代码

    八、适用场景

    • 学习 Spring Cloud 微服务:网关、Nacos 发现、多服务拆分、Flyway 迁移的完整实践
    • 快速搭建中后台系统:企业 / 政府 / 教育 / SaaS 管理端,RBAC、监控、日志开箱即用
    • 多技术栈选型对比:四套前端同一后端,React vs Vue、TS vs JS 一目了然
    • 二次开发起步:page-ui CRUD、代码生成、通用组件可直接复用,专注业务差异
    • 商业项目交付:Apache 2.0 允许闭源商用,无需单独购买授权

    九、许可证说明

    本项目采用 Apache License 2.0:

    用途是否允许
    个人学习、自用部署
    二次开发、修改源码
    商业项目、对外交付
    闭源商用 ✅(须保留版权声明与 LICENSE)
    再分发源码或编译产物

    十、总结

    xn-admin 不是简单的 CRUD 模板,而是一套可落地的微服务后台方案。再次附上核心链接,方便收藏:

    链接
    后端 Gitee
    React 前端 Gitee
    Vue3+TS 前端 Gitee
    在线演示 react.xinniankeji.vip
  • 后端:网关 + 四微服务,职责清晰,Docker 一键起中间件
  • 前端:四套技术栈任选,React 版 Ant Design 视觉、Vue 版 Element Plus 为基准
  • 工程化:Flyway 迁移、Spotless、CI、Husky、Conventional Commits
  • 开箱即用:RBAC、动态路由、page-ui、监控、日志、代码生成、文件分片上传等
  • 真正开源可商用:Apache 2.0,无授权门槛
  • 如果你在做后台管理系统选型,或想系统学习 Spring Cloud + React/Vue 全栈,欢迎 Star、Fork,也欢迎 在线体验。


    建议 CSDN 标签:

    Spring Cloud Spring Boot React Vue3 后台管理系统 开源项目 Ant Design 微服务 RBAC Java

    建议封面图:

    封面-登录页

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【开源推荐】心念后台 xn-admin:Spring Cloud 微服务后端 + 四套前端(React / Vue),Apache 2.0 可商用
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!