开源一款可商用的中后台:Spring Boot 4 微服务 + 四套前端(Vue3 / React)
2026/9/19 3:12:13 网站建设 项目流程

大家好,我是心念。最近把做了很久的一套中后台开源出来了,名字叫心念后台(xn-admin)

这不是又一个「只能学习、商用要买授权」的模板。它采用Apache License 2.0,个人自用、二次开发、商业项目、闭源交付都可以,只要遵守许可证里的版权声明和 NOTICE 要求。

当前版本是1.0.0。仓库都在 Gitee / GitHub,国内访问 Gitee 更方便。

一、它是什么,解决什么问题

做业务系统时,登录、权限、组织、字典、文件、日志、定时任务、代码生成……这些模块几乎每次都要重写一遍。市面上的后台脚手架很多,但常见几个痛点:

  • 前端只有一套:团队用 Vue 还好,想用 React 或 Options API 就得自己移植
  • 后端是单体:业务长大了再拆微服务成本很高
  • 许可证不清晰:看起来开源,商用可能要付费或改版权
  • 工程化偏弱:格式化、单测、CI、提交规范各写各的

心念后台想做成一件事:一套后端契约,四套管理端任选,功能对齐,可直接当商业项目起步模板。

架构很简单:

浏览器(四套管理端任选其一) ↓ /api /uploads /ws xn-gateway :8088(Spring Cloud Gateway + Nacos) ├── xn-system :8081 登录 / RBAC / 组织 / 字典 / 公告 / 监控 / 代码生成 ├── xn-file :8082 文件、分片上传、MinIO ├── xn-log :8083 登录 / 操作 / 异常 / 任务日志 └── xn-job :8084 Quartz 定时任务

中间件是常见组合:MySQL、Redis、Nacos、MinIO。

二、仓库一览(都是独立开源)

开源范围是「1 个微服务后端 + 4 套管理端」。官网xn-home是品牌落地页,可选。

仓库说明GiteeGitHub
xn-admin-cloud微服务后端(必需)GiteeGitHub
xn-admin-vue3-ts功能基准:Vue 3 + TypeScript + Element PlusGiteeGitHub
xn-admin-vue3-jsVue 3 + JavaScript(Composition)GiteeGitHub
xn-admin-vue2-jsVue 3 + JavaScript(Options APIGiteeGitHub
xn-admin-react-tsReact 19 + TypeScript + Ant DesignGiteeGitHub

说明两点,避免误会:

  1. vue2-js不是 Vue 2。目录名表示「第二套 JS 写法」,运行时是 Vue 3,组件用 Options API(data/methods/computed),方便习惯老写法的团队。
  2. 四套前端对接同一网关http://127.0.0.1:8088,开发端口错开:React1800、vue2-js1801、vue3-js1802、vue3-ts1803,可以同时开着对比。

React 端刻意没用 Element 的视觉去「套壳」,用的是 Ant Design 原生主色和布局,业务能力跟 Vue 基准对齐。

在线演示

  • 官网:https://xinniankeji.vip
  • Vue3 + TS:https://vue3-ts.xinniankeji.vip
  • Vue3 + JS:https://vue3-js.xinniankeji.vip
  • Vue3 Options:https://vue2.xinniankeji.vip
  • React:https://react.xinniankeji.vip

演示账号请以官网说明为准;本地开发默认是SuperAdmin/SuperAdminadmin/admin仅用于本机,登录后请立刻改密

三、技术栈

后端xn-admin-cloud

  • Java 21、Maven 多模块(自带mvnw
  • Spring Boot 4、Spring Cloud Gateway、Nacos
  • JPA + Flyway、Redis、MinIO、Quartz、OpenAPI

前端(以基准xn-admin-vue3-ts为例)

  • Vue 3.5、TypeScript、Vite 8、Element Plus
  • Pinia、Vue Router、Axios
  • ECharts、wangEditor、ExcelJS
  • ESLint、Prettier、Vitest、Husky、commitlint

React 端是 React 19 + Ant Design + TypeScript。

工程化我比较在意:后端有 Spotless(Google Java Format)、SpotBugs、JaCoCo、Enforcer(强制 JDK 21),前后端都有 GitHub Actions / Gitee Go。提交走 Conventional Commits,例如feat(system): 增加密码策略

四、功能清单(后台该有的,尽量齐)

接口和菜单种子已经齐了,页面由配套前端承接。

能力
认证会话登录 / 登出 / 注册 / 图形与滑块验证码 / JWT 续期 / 改密 / 头像 / 动态菜单
组织账号用户(CRUD、导入导出、启停)/ 单位树 / 岗位
权限安全RBAC;数据权限(全部 / 本单位及下级 / 本单位 / 本人);按钮级权限;锁定、限流、密码规则
基础数据字典类型与数据
系统设置系统配置、登录页、远程存储、联系与捐赠、用户 UI 偏好、表格列偏好
内容运营公告(发布、撤回、已读、WebSocket)/ 站内信
监控在线用户与强制下线 / 服务 / Redis / SQL
日志登录 / 操作 / 异常 / 任务日志:查询、详情、删除、清空、导出(后端已齐,前端页面还在补
文件浏览、上传、建目录、删除、分片上传
任务Quartz CRUD、启停、立即执行
工具回收站、代码生成、路由一键生成

几个我自己比较在意的点:

1. 数据权限不是摆设

角色可以配:全部、本单位及下级、本单位、仅本人。中后台如果没有这一层,多单位场景很快就会翻车。

2. page-ui 驱动列表页

搜索项、表格列、按钮往往由后端 page-ui 下发,前端用xnPageLayout+xnSearch+xnTable组合。典型结构:

xnPageLayout ├── #aside → xnTreePanel(可选,单位树等) ├── #search → xnSearch ├── #toolbar→ xnButton └── #table → xnTable

新业务页可以少写一堆重复的搜索表单和表格配置。

3. 一套后端,四种前端口味

TypeScript / JavaScript、Composition / Options、Vue / React,团队怎么舒服怎么选,不必为了脚手架先换技术栈。

4. 代码生成 + 回收站 + 分片上传

这三块在真实项目里出现频率很高,我没有当成「以后再说」的附属功能。

五、界面预览

以下截图来自基准管理端xn-admin-vue3-ts

登录与首页

组织与账号

权限与安全

系统监控

内容与设置

文件与任务

六、和常见后台脚手架的差异(我自己的定位)

市面上若依、Jeecg 等都很成熟,我没有打算「替代谁」。心念后台更适合这几类人:

  • 想用较新的 Spring Boot 4 + Java 21微服务结构,而不是先上一个大单体
  • 团队里同时有 Vue 和 React,或有人只熟悉 Options API
  • 需要明确可商用的 Apache-2.0,不想后续被授权卡住
  • 希望列表页、权限、文件、任务这些中后台基础能力开箱即用

当前架构也有取舍,文末会写清楚,避免看完仓库才发现对不上预期。

七、本地怎么跑起来

1. 准备中间件

需要 JDK 21、Maven 3.9+(仓库自带mvnw)、Node.js 20+,以及 MySQL、Redis、Nacos、MinIO。可以用 Docker Compose,也可以本机安装。库名默认xn_admin

2. 启动后端(五个服务)

仓库根目录,profile 用dev,cloud

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询