我开源了一套springboot3快速开发模板

我开源了一套springboot3快速开发模板

开箱即用、按需组合、可快速二次开发的后端通用模板。

✨ 主要特性

  • Spring Boot 3.x + Java 17:跟随 Spring 最新生态,利用现代语法特性。
  • 多模块分层common 抽象通用能力、starter 负责启动、modules 承载业务逻辑,职责清晰、易于扩展。
  • 依赖版本统一 :父 pom + bom 管理所有三方库版本,避免冲突。
  • 开箱即用组件:MyBatis-Plus、Redisson、MapStruct、Hutool、Lock4j、Sa-Token 等常用库一应俱全。
  • 多环境配置dev / prod 双环境示例,可自由新增。
  • 优雅异常 & 统一响应 :内置 GlobalExceptionHandlerR<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都是按需进行导入。

关于分页用到了分页插件。

java 复制代码
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)

按领域拆分模块,可显著提升可维护性与团队协作效率。

相关推荐
cup1113 小时前
[Full Clock 技术复盘] 一、浏览器前端如何实现百毫秒级时间校准?时间 API 推荐、模拟 NTP 算法原理及局限
typescript·开源·api·时钟·时间同步
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
来杯@Java14 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
卷毛的技术笔记15 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥15 小时前
匿名函数 lambda + 高阶函数
java·python·算法
isyangli_blog15 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb20081115 小时前
FastAPI APIRouter
开发语言·python
Benszen15 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆15 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木15 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试