[开源]一个效率至上快速开发脚手架,快速搭建企业级后台管理系统

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

一个快速开发脚手架,快速搭建企业级后台管理系统,并提供多种便捷starter进行功能扩展。主要功能包括前后台用户分离,菜单权限,数据权限,定时任务,访问日志,操作日志,异常日志,统一异常处理,XSS过滤,SQL防注入等多种功能。

二、开源协议

使用MIT开源协议

三、界面展示

演示效果

四、功能概述

业务模块

BallCat 为后台管理的一些基本需求提供了以下五个业务模块,用户可以按需引入:

  • ballcat-auth(授权模块) :用于支撑 OAuth2 的授权服务器,集成了登录图像验证码,登录AES密码解密过滤器等相关功能。目前使用 Spring-Security-OAuth2 作为基础,后续将迁移到 spring-authorization-server 项目。

  • ballcat-system(系统模块) :提供了用户管理、角色管理、菜单管理、组织架构、字典管理、系统配置等这些后台管理系统中不可或缺的核心功能。

  • ballcat-log(日志模块) :提供了登录日志、操作日志、访问日志等日志记录功能,提供了 TraceId,可串联一次请求中的所有日志信息。日志默认存储位置在 mysql 中,用户可以按需定制日志处理逻辑。

  • ballcat-i18n(国际化模块) :提供了基于数据库的国际化信息配置存储方案,提供 local + redis 双重缓存处理,提升国际化处理效率。

  • ballcat-notify(通知模块) :目前提供了系统公告的能力,下个版本将会新增通知相关的功能。

功能模块

功能模块和业务无关,非 ballcat 项目也可以引入这些模块获得功能增强,用户按照实际业务需求选择模块进行集成。

包括但不限于以下这些功能 :

  • 数据权限控制,在 orm 层实现,基于 Jsqparse 解析 Sql,进行权限范围的 sql 注入

  • 国际化功能,不仅支持 spring 原生的文件配置形式,还可以自定义动态加载国际化配置

  • 注解使用 redis 缓存、分布式锁,防击穿,全局key前缀等功能

  • 注解快速实现 excel 导入导出功能

  • 支付功能:包括支付宝、微信、USDT 虚拟货币等

  • 基于 S3 协议的对象存储封装,方便一套代码兼容大部分云平台,如阿里云,七牛云,腾讯云

目前提供的功能模块列表

详细内容请查看 README.md 文档

五、技术选型

技术栈

Spring Boot、Spring Security、Spring Authorization Server、Mybatis Plus、Hutool

BallCat 组织旨在为项目快速开发提供一系列的基础能力,方便使用者根据项目需求快速进行功能拓展。

在以前使用其他后台管理脚手架进行开发时,经常会遇到因为项目业务原因需要进行二开的问题,在长期的开发后,一旦源项目进行迭代升级,很难进行同步更新。

为了解决这一问题,BallCat 将自身所有的业务和功能都设计为可插拔的依赖,方便用户自由组装和卸载。

开发时,用户以依赖的方式引入 BallCat 所提供的模块,当 BallCat 项目升级时,用户只需同步更新版本号,即可获得功能更新。

Ballcat 已将所有 JAR 包都推送至中央仓库,也会为每个版本的升级改动列出详细的更新日志,以及增量 SQL。

快速搭建

跟随本文可以使用 ballcat 快速搭建一套单体的后台管理系统

环境准备

开始之前,请先确保您已经配置好以下环境

名称

版本

JDK

1.8

MySQL

8.x

Redis

3.2 +

node

16 +

WARNING

5.7.x 及以下版本的 MySQL,需要开启 timestamp 类型默认值为 null 的支持, 在执行 sql 前先执行以下 sql.

set session explicit_defaults_for_timestamp = 1;

注意,该设置仅当前会话内生效,所以执行完成后必须在同一会话内进行 sql 执行。

另:请在您的开发工具中安装好 Lombok 插件, lombok 的使用参看其 官方文档open in new window

最新版本的 Idea 中已经自带了 Lombok 插件

数据库配置

版本:mysql5.7.8+
默认字符集:utf8mb4
默认排序规则:utf8mb4_general_ci

  • 按下面顺序依次执行 ballcat/doc 目录下的数据库脚本

# 建库语句scheme.sql   # 核心库ballcat.sql  
# 国际化相关 SQL, 无需国际化功能则不用执行此处代码ballcat-i18n.sql

默认 oauth2_registered_client 脚本中有一个 test client,该 client 只能用于开发及测试环境,其登陆时会跳过图形验证码以及密码解密过程,生产环境请删除该client

注意:ballcat/doc/update_sql 下的是各个版本升级的增量 sql,初次搭建时无需执行。
当跟随 ballcat 做版本升级时,如从 0.5.0 版本升级到 0.6.0 版本时,需执行 update_sql 文件夹下的 0.6.0.sql

配置本地hosts

建议使用 switchHost 软件管理hosts配置!

也可直接修改本地host文件:
windows系统下host文件位于 C:\Windows\System32\drivers\etc\hosts

新增如下host:

127.0.0.1 ballcat-mysql
127.0.0.1 ballcat-redis
127.0.0.1 ballcat-job
127.0.0.1 ballcat-admin

其中 127.0.0.1 按需替换成开发环境ip

服务端准备

详细内容请查看 README.md 文档

六、源码地址

访问一飞开源:https://code.exmay.com/

相关推荐

  • 每日prompt:女孩写真
  • 大佬怎么看AI取代人类工作,粘土风图片视频最近有点火
  • 四种 API 架构风格
  • 再谈RAG范式的2个问题:文档解析流程的具象化理解及语义分割方案
  • 投中信息杨晓磊:中国不能没有风险投资,也不能没有风险投资人
  • 都说养老行业是风口,为何很少人敢做?
  • Python网页应用开发神器Dash新版本介绍
  • 32 个 Python 实例彻底解析 f-String 格式化浮点数 003【推荐收藏】
  • 浅析MySQL代价模型:告别盲目使用EXPLAIN,提前预知索引优化策略
  • 剁手党必看——转转红包使用规则与最优组合计算全解析
  • 推荐一款开源Scada,数据采集必备
  • 5.5K Star不到1秒!!!查看系统所有配置,支持所有系统
  • 数据处理不再难!用JSONCrack轻松打造炫目可视化效果!
  • 访谈Citadel CEO Ken Griffin:从哈佛宿舍到对冲基金帝国 (附全文+视频)
  • 被嫌弃的CSS的一生
  • 该死,这糟糕的心动感,AI杀疯了!
  • 云风从阿里离职,未来计划制作Windows平台的独立游戏,曾力挽《大话西游》于狂澜
  • 知名远程控制工具、TeamViewer开源替代——RustDesk已暂停国内服务
  • 1.3万字+34张图带你全面掌握高可用架构流量治理核心策略
  • 《工作的心智》共读营,诚邀你的加入