Spring Quick,顾名思义,是作者本人创建的一个基于Spring Boot + MyBatis-Plus + Sa-Token + Knife4j等框架结构搭建的一个企业级脚手架,方便企业及开发人员直接上手使用。并在项目中集成常用工具类,如MyBatis-Plus-Generator,Redisson等。还整合了整个项目代码四层架构规范(代码生成同时配置此规范)、统一响应体设计、业务异常、切面异常规范、切面日志等。
Spring Quick - 企业级Spring Boot快速启动框架深度解析
项目定位
「Spring Quick」是一款面向生产环境的Spring Boot企业级脚手架,基于Spring Boot 3.2深度定制,整合了主流技术栈的最佳实践。开发者可在5分钟内完成从项目初始化到接口发布的全流程。
GitHub地址:https://github.com/practiceL/spring-quick
核心特性
1. 智能代码生成器
// 代码生成示例(基于velocity模板)
public static void main(String[] args) {try {MybatisPlusCodeGenerator generator = new MybatisPlusCodeGenerator();generator.DB_URL = "jdbc:mysql://127.0.0.1:3306/sa-token-db?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT";generator.DB_USER_NAME = "root";generator.DB_PASSWORD = "root";generator.TABLE_PREFIX = new String[]{"sys_"};generator.PACKAGE_PARENT = "com.saveslave.hhp";generator.SUPER_ENTITY_CLASS = "";generator.SUPER_ENTITY_COLUMNS = new String[]{};generator.USE_TEMP_OUTPUT = true;generator.INCLUDES = new String[]{"sys_user"};generateDefaultCode(generator);} catch (Exception e) {e.printStackTrace();}}
- 支持生成Controller/Service/Mapper/Entity四层代码
- 自定义模板机制(
resources/templates
) - 自动生成Swagger3注解
2. 安全认证体系
# 安全配置样例
sa-token:# token 名称(同时也是 cookie 名称)token-name: satoken# token 有效期(单位:秒) 默认30天,-1 代表永久有效timeout: 2592000# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结active-timeout: -1# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)is-concurrent: true# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)is-share: true# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)token-style: uuid# 是否输出操作日志is-log: true
- 集成Sa-Token实现以下功能:
- RBAC权限模型(角色-菜单绑定)
- 分布式会话管理
- 二级认证(敏感操作二次验证)
3. 企业级数据层封装
// 分布式锁使用示例
@Autowired
private RedisLockHelper lockHelper;public void businessProcess() {String lockKey = "order:123";if(lockHelper.tryLock(lockKey, 10, TimeUnit.SECONDS)) {try {// 业务逻辑} finally {lockHelper.unlock(lockKey);}}
}
- 增强功能清单:
- 多数据源动态切换(基于AOP)
- MyBatis-Plus 自动填充优化
- 分布式锁(Redis + Lua原子操作)
4. 标准化工程规范
// 统一响应体设计
public class Result<T> implements Serializable {private T data;private Integer code;private String msg;public static <T> Result<T> succeed(String msg) {return succeedWith(null, ReturnCode.SUCCESS.getCode(), msg);}public static <T> Result<T> succeed(T model, String msg) {return succeedWith(model, ReturnCode.SUCCESS.getCode(), msg);}
..................}
- 统一组件:
- 全局异常处理器(BizException)
- 参数验证器(Hibernate Validator增强)
- 操作日志切面(异步存储)
技术架构
快速开始
步骤1:环境准备
git clone https://github.com/practiceL/spring-quick.git
mvn clean install
步骤2:数据库配置
CREATE DATABASE `quick_db` DEFAULT CHARACTER SET utf8mb4;
-- 执行 docs/sql/init.sql 初始化表结构
步骤3:生成业务模块
// 在test目录运行生成器
public class UserGen {public static void main(String[] args) {new CodeGenerator().setModuleName("user").setTablePrefix("sys_").execute();}
}
最佳实践
场景1:接口开发
@Api(tags = "用户管理")
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService usersService;/*** 新增用户*/@PostMapping("/savaUser")public Result<String> savaUser(@RequestBody User user) {// 新增用户需要/insert权限StpUtil.checkPermission("/insert");return usersService.savaUser(user);}/*** 查询全部用户,下面这个方法也是mybatis-plus自带的查询方法,很方便*/@GetMapping("/selectAllUser")public List<User> queryAllUser() {// 查询全部用户需要/select权限StpUtil.checkPermission("/select");return usersService.list();}
}
- 任务日志可视化查询
效能对比
功能 | 传统开发耗时 | 使用Spring Quick |
---|---|---|
基础架构搭建 | 2-3天 | 5分钟 |
用户管理模块开发 | 8小时 | 15分钟 |
权限系统集成 | 1天 | 即时生效 |
用户评价
“这个模板将我们的新项目启动时间缩短了70%,特别是代码生成器和统一异常处理的设计非常符合企业开发规范” —— 某金融科技公司技术总监
未来规划
- 增加Flowable工作流支持
- 集成MinIO对象存储
- 开发CLI工具链
立即体验:GitHub仓库地址
星星Star:麻烦动动手指点个赞