我开源了一套springboot3快速开发模板
开箱即用、按需组合、可快速二次开发的后端通用模板。
✨ 主要特性
- Spring Boot 3.x + Java 17:跟随 Spring 最新生态,利用现代语法特性。
- 多模块分层 :
common
抽象通用能力、starter
负责启动、modules
承载业务逻辑,职责清晰、易于扩展。 - 依赖版本统一 :父
pom
+bom
管理所有三方库版本,避免冲突。 - 开箱即用组件:MyBatis-Plus、Redisson、MapStruct、Hutool、Lock4j、Sa-Token 等常用库一应俱全。
- 多环境配置 :
dev / prod
双环境示例,可自由新增。 - 优雅异常 & 统一响应 :内置
GlobalExceptionHandler
、R<T>
响应体及通用错误码。 - 最佳实践示例 :含首页
IndexController
、分页 DTO、公用工具类等常用代码范例。
目录结构
u-springboot3-init │ ├── pom.xml # 根 POM,统一依赖 / 插件 / 版本 ├── readme.md # 项目说明(本文档) │ ├── xiaou-common # 通用能力层 │ ├── xiaou-common-bom # 统一版本 │ ├── xiaou-common-core # 常量 / 响应体 / 异常 / 工具类 │ ├── xiaou-common-web # Web & Undertow 基础封装 │ ├── xiaou-common-mybatis # MyBatis-Plus 及插件整合 │ └── xiaou-common-redis # Redis & Redisson & 缓存封装 │ ├── xiaou-starter # 项目启动模块(入口) │ └── src/main/resources # application.yml & 多环境配置 │ └── xiaou-modules # 业务模块集合(预留)
项目采用了多模块的划分。
是我自己提炼的一个精简项目模板。里面包含了很多常用的工具类,对很多工具类都进行了一个扩展。
其中的starter模块是一个项目的启动类,一般在这里只需要启动项目以及配置文件的编写。
xiaou-common模块
这个模块集成了很多通用的工具类。
例如:分页的dto


以及一些常用的工具类

全局错误拦截类
二开指南
一般业务二开引入
xml
<dependency>
<groupId>com.xiaou</groupId>
<artifactId>xiaou-common-core</artifactId>
</dependency>
xml
<dependency>
<groupId>com.xiaou</groupId>
<artifactId>xiaou-common-web</artifactId>
</dependency>
其他东西例如redis mybatis都是按需进行导入。
关于分页用到了分页插件。
ini
IPage<SysOperLog> page = new Page<>();
page.setCurrent(dto.getPageNum());
page.setSize(dto.getPageSize());
// 添加排序字段(以 create_time 字段为例)
QueryWrapper<SysOperLog> queryWrapper = new QueryWrapper<>();
QueryWrapperUtil.applySorting(queryWrapper, dto, List.of(dto.getSortField()));
IPage<SysOperLog> collegeIPage = baseMapper.selectPage(page, queryWrapper);
可以通过下面的方法构建分页对象
对象转换方面用到了mapstruct.plus
只需要调用MapstructUtils.convert方法就可以
同时在需要映射的类加上automapper

项目地址
xiaou61/u-springboot3-init (github.com)
按领域拆分模块,可显著提升可维护性与团队协作效率。