前言
以前做后台管理系统,最头疼的就是CRUD。几十张表摆在那里,每张表都要写一遍增删改查接口,写完了还得写前端页面、对接接口,翻来覆去全是重复劳动。后来自己动手写了一套脚手架来简化这件事,经过几个版本的迭代,功能慢慢丰富起来,不再局限于CRUD生成,又加了不少日常开发中高频用到的功能。
项目介绍
一套基于SpringBoot + Vue的前后端分离快速开发平台,完全开源,个人和企业都能免费使用。它比较适合中小型项目的快速开发——大型项目一般有自己的架构团队,反而不太需要这种开箱即用的东西。
项目的核心定位是三个词:快速、简洁、规范。快速体现在代码生成能力上,简洁体现在对重复代码的封装上,规范则是对接口命名、请求方式、响应格式的统一约束。这三件事做好了,开发效率确实能提上来不少。
演示地址是 http://manage.xijia.plus/ ,账号test,密码123456。
如果访问不了直接拉代码本地跑也行,文档在 http://xijia.plus/ 可以找到。
项目功能
功能类别 | 包含内容 |
基础功能 | 用户管理、角色管理、菜单管理、部门管理、接口管理、字典管理 |
增强功能 | Banner配置、消息管理、请求日志、黑名单、全局配置 |
技术集成 | 阿里云OSS、WebSocket、Redis |
开发工具 | 前后端代码生成、Swagger + Knife4j接口文档 |
分布式支持 | Redis分布式缓存、分布式锁、分布式唯一编号 |
特色功能 | 本地图床/阿里云图床、飞书/微信群机器人异常监控、多数据源 |
其中代码生成功能是节省时间最明显的一块——表结构建好之后,前端页面和后端接口一键生成,生成完就能直接用。
项目特点
一是引入成本低。 引入一个jar包就能拿到整套脚手架的功能,工具类和常用代码都封装好了,不用自己从头搭框架。
二是代码生成覆盖前后端。 不只生成Java后端代码,前端Vue页面也一起生成,而且接口是自动对接好的,生成完直接能用,不用再手工改。
三是规范统一。 接口命名、请求方式、参数校验、响应格式都有统一约定,团队协作时不用反复对齐这些细枝末节的东西。
四是分布式方案相对完整。 分布式锁、分布式缓存、分布式ID这些场景都有现成方案,默认支持集群部署。
五是有些偏实用的小功能。 比如群机器人异常通知,系统报错的时候自动往飞书或微信群推一条消息,对没有专职运维的小团队来说挺省心的。
项目技术
后端技术栈
后端基于SpringBoot 2.7.x,数据库用MySQL 5.7+,缓存用Redis,接口文档用Swagger配合Knife4j做增强。项目按模块拆分,核心模块包括基础核心(xj-base-core)、代码生成(xj-base-generate)、文件处理(xj-base-file)、WebSocket(xj-websocket)、Redis模块(xj-redis)等,按需引入就行。
前端技术栈
前端目前同时维护Vue2和Vue3两个版本。Vue2版本用的是Element-UI + Avue,Vue3版本用的是Element-Plus + Avue。Avue这个框架是基于Element二次封装的,对CRUD场景做了很多简化,表格和表单的配置比直接写Element要省事不少。
架构设计上几个值得注意的点
统一返回格式。 所有接口返回结构一致,前端对接的时候不用每个接口单独处理异常情况。
全局异常处理。 业务异常统一走全局拦截,返回格式化的错误信息,不会把异常堆栈直接抛到前端去。
参数处理方案。 核心参数加解密、敏感数据脱敏、参数校验都有统一处理方式。
多数据源支持。 用dynamic-datasource做的动态数据源配置,多库场景下切换比较方便。
项目代码
Gitee:https://gitee.com/wslxm/xijia-plus
项目效果
做新项目的时候,不用从零开始搭框架、写登录权限、配swagger这些基础工作,直接在一个可用的基础上开始写业务。
遇到十几二十张表的CRUD需求时,代码生成能省掉很大一部分重复劳动。表结构设计好,页面和接口一键生成,基本功能直接就能用,只有特殊逻辑需要额外写代码。
项目源码
服务端主仓库:https://gitee.com/wslxm/xijia-plus
管理端Vue2版:https://gitee.com/wslxm/xj-manage-vue2
管理端Vue3版:https://gitee.com/wslxm/xj-manage-vue3
文档地址:http://xijia.plus/
示例项目:https://gitee.com/wslxm/xijia-plus-demo
项目采用MIT开源协议,可以自由使用和二次开发。
总结
这个项目,本质上是在解决后台管理系统开发中的重复劳动问题。它的核心价值不在于技术多先进,而在于把CRUD生成、基础功能、分布式方案这些常见需求打包好了,让做项目的人可以直接跳过搭框架的阶段,把精力放在业务逻辑上。当然它也有明确的边界——定位是中小型项目,适合快速交付的场景。项目文档、代码生成、多版本前端支持这些细节都做得比较完整,对想找个现成脚手架来用的团队来说,是一个值得参考的选择。
关键词
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码
有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力