# springboot-bucket **Repository Path**: yidao620/springboot-bucket ## Basic Information - **Project Name**: springboot-bucket - **Description**: SpringBoot 全家桶 —— 本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通过“一篇博客 + 一个可运行项目”的形式来详细说明。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8575 - **Forks**: 3124 - **Created**: 2018-02-26 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: spring-boot-ext **Tags**: None ## README # SpringBoot 4.x 全家桶 SpringBootBucket4.x全家桶基于最新版本 Spring Boot 4.x 版本编写。Spring Boot 4.0基于Spring Framework 7.0,全面支持 Java25(含虚拟线程优化)。核心的新特性包括:HTTP Service Clients 简化远程调用;原生API版本管理;全面采用JSpecify空安全体系(默认为空,编译器防NPE);关键依赖升级至Jackson 3.0、Tomcat 11、Hibernate 7.1等;支持Gradle 9;Redis静态主从配置;移除Undertow。 Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的。本项目对目前 Java Web 开发中常用的各项技术,通过和 Spring Boot 的集成,以「**一篇博客 + 一个可运行项目**」的形式详细说明。 每个子项目只引入完成该主题所需的最小依赖,可独立运行,也可按业务需要自由组合。 > 基于 Spring Boot 2.0 的旧版教程已归档至 `springboot2.0` 分支,保持只读不再维护。 ## 版本基线 | 项 | 版本 | | --- | --- | | JDK | 21(Spring Boot 4 基线为 17,推荐 21 / 25) | | Spring Boot | 4.1.1 | | Spring Framework | 7.0.9 | | Maven | 3.9 | | 容器 | Tomcat 11(内置,Undertow 已在 4.0 移除) | | JSON | Jackson 3(`tools.jackson` 包名) | ## 环境准备 依赖外部中间件的主题(数据库、缓存、消息队列)统一使用 Docker Compose 编排,无需在宿主机单独安装: ```bash docker compose up -d # 启动 MySQL / MongoDB / Redis / RabbitMQ docker compose ps # 查看容器与健康状态 docker compose down # 停止 docker compose down -v # 停止并清空数据 ``` | 服务 | 端口 | 账号 | | --- | --- | --- | | MySQL 8.4 | 3306 | root / root123456 | | MongoDB 8.0 | 27017 | root / root123456 | | Redis 8.0 | 6379 | 密码 root123456 | | RabbitMQ 4(含管理台) | 5672 / 15672 | admin / admin123456 | 各主题所需的建库建表脚本放在对应工程的 `src/main/resources/sql/` 下,具体步骤见该工程的 README。 ## 运行方式 每个子项目均可独立运行: ```bash cd springboot4-xxx mvn clean package java -jar target/springboot4-xxx-1.0.0.jar ``` 也可以直接在 IDE 中运行启动类的 `main` 方法。默认端口为 `8080`,如与本地服务冲突,在 `application.yml` 中调整 `server.port`。 ## 主题索引 进度以 `待编写 → 进行中 → 已完成` 标记。 ### P-1 Web 与数据 | 项目 | 文章 | 状态 | | --- | --- | --- | | [springboot4-restful](springboot4-restful) | [SpringBoot4系列01 - 实现RESTful接口](https://www.xiongneng.me/posts/java/springboot/sb4-restful/) | 已完成 | | [springboot4-mybatis](springboot4-mybatis) | [SpringBoot4系列02 - 集成MyBatis-Plus](https://www.xiongneng.me/posts/java/springboot/sb4-mybatis/) | 已完成 | | [springboot4-jpa](springboot4-jpa) | [SpringBoot4系列03 - 集成Spring Data JPA与Hibernate 7](https://www.xiongneng.me/posts/java/springboot/sb4-jpa/) | 已完成 | | [springboot4-mongodb](springboot4-mongodb) | [SpringBoot4系列04 - 集成MongoDB](https://www.xiongneng.me/posts/java/springboot/sb4-mongodb/) | 已完成 | | [springboot4-multisource](springboot4-multisource) | [SpringBoot4系列05 - 多数据源配置](https://www.xiongneng.me/posts/java/springboot/sb4-multisource/) | 已完成 | | [springboot4-transaction](springboot4-transaction) | [SpringBoot4系列06 - 声明式事务](https://www.xiongneng.me/posts/java/springboot/sb4-transaction/) | 已完成 | ### P-2 中间件与集成 | 项目 | 文章 | 状态 | | --- | --- | --- | | [springboot4-redis](springboot4-redis) | [SpringBoot4系列07 - Redis数据库](https://www.xiongneng.me/posts/java/springboot/sb4-redis/) | 已完成 | | [springboot4-cache](springboot4-cache) | [SpringBoot4系列08 - 使用缓存](https://www.xiongneng.me/posts/java/springboot/sb4-cache/) | 已完成 | | [springboot4-rabbitmq](springboot4-rabbitmq) | [SpringBoot4系列09 - 使用消息队列RabbitMQ](https://www.xiongneng.me/posts/java/springboot/sb4-rabbitmq/) | 已完成 | | [springboot4-batch](springboot4-batch) | [SpringBoot4系列10 - 使用批处理Spring Batch](https://www.xiongneng.me/posts/java/springboot/sb4-batch/) | 已完成 | | [springboot4-schedule](springboot4-schedule) | [SpringBoot4系列11 - 使用定时任务Schedule](https://www.xiongneng.me/posts/java/springboot/sb4-schedule/) | 已完成 | | [springboot4-async](springboot4-async) | [SpringBoot4系列12 - 使用异步任务与线程池](https://www.xiongneng.me/posts/java/springboot/sb4-async/) | 已完成 | | [springboot4-websocket](springboot4-websocket) | [SpringBoot4系列13 - 使用WebSocket实时通信](https://www.xiongneng.me/posts/java/springboot/sb4-websocket/) | 已完成 | | [springboot4-restclient](springboot4-restclient) | [SpringBoot4系列14 - 使用声明式HTTP客户端RestClient](https://www.xiongneng.me/posts/java/springboot/sb4-restclient/) | 已完成 | | [springboot4-grpc](springboot4-grpc) | [SpringBoot4系列15 - 集成gRPC服务](https://www.xiongneng.me/posts/java/springboot/sb4-grpc/) | 已完成 | ### P-3 工程化与安全 | 项目 | 文章 | 状态 | | --- | --- | --- | | [springboot4-aop](springboot4-aop) | [SpringBoot4系列16 - 使用AOP](https://www.xiongneng.me/posts/java/springboot/sb4-aop/) | 已完成 | | [springboot4-starter](springboot4-starter) | [SpringBoot4系列17 - 自己写Starter](https://www.xiongneng.me/posts/java/springboot/sb4-starter/) | 已完成 | | [springboot4-security](springboot4-security) | [SpringBoot4系列18 - 使用Spring Security 7权限管理](https://www.xiongneng.me/posts/java/springboot/sb4-security/) | 已完成 | | [springboot4-oauth2](springboot4-oauth2) | [SpringBoot4系列19 - 使用OAuth2与JWT接口认证](https://www.xiongneng.me/posts/java/springboot/sb4-oauth2/) | 已完成 | | [springboot4-openapi](springboot4-openapi) | [SpringBoot4系列20 - 使用OpenAPI 3.1接口文档](https://www.xiongneng.me/posts/java/springboot/sb4-openapi/) | 已完成 | | [springboot4-testing](springboot4-testing) | [SpringBoot4系列21 - 测试体系JUnit 6与Testcontainers](https://www.xiongneng.me/posts/java/springboot/sb4-testing/) | 已完成 | | [springboot4-apiversion](springboot4-apiversion) | [SpringBoot4系列22 - 使用API版本管理](https://www.xiongneng.me/posts/java/springboot/sb4-apiversion/) | 已完成 | | [springboot4-jackson3](springboot4-jackson3) | [SpringBoot4系列23 - 使用Jackson 3与空安全](https://www.xiongneng.me/posts/java/springboot/sb4-jackson3/) | 已完成 | ### P-4 生产化 | 项目 | 文章 | 状态 | | --- | --- | --- | | [springboot4-observability](springboot4-observability) | [SpringBoot4系列24 - 使用Actuator与OpenTelemetry可观测性](https://www.xiongneng.me/posts/java/springboot/sb4-observability/) | 已完成 | | [springboot4-resilience](springboot4-resilience) | [SpringBoot4系列25 - 使用内置弹性重试与并发限制](https://www.xiongneng.me/posts/java/springboot/sb4-resilience/) | 已完成 | | [springboot4-native](springboot4-native) | [SpringBoot4系列26 - 使用GraalVM原生镜像与AOT](https://www.xiongneng.me/posts/java/springboot/sb4-native/) | 已完成 | | [springboot4-virtualthreads](springboot4-virtualthreads) | [SpringBoot4系列27 - 使用虚拟线程提升吞吐](https://www.xiongneng.me/posts/java/springboot/sb4-virtualthreads/) | 已完成 | | [springboot4-thymeleaf](springboot4-thymeleaf) | [SpringBoot4系列28 - 集成Thymeleaf服务端渲染](https://www.xiongneng.me/posts/java/springboot/sb4-thymeleaf/) | 已完成 | | [springboot4-echarts](springboot4-echarts) | [SpringBoot4系列29 - 服务端图表数据接口与PNG导出](https://www.xiongneng.me/posts/java/springboot/sb4-echarts/) | 已完成 | ### P-5 前沿 | 项目 | 文章 | 状态 | | --- | --- | --- | | [springboot4-ai-mcp](springboot4-ai-mcp) | [SpringBoot4系列30 - 用Spring AI把业务接口暴露成MCP工具](https://www.xiongneng.me/posts/java/springboot/sb4-ai-mcp/) | 已完成 | ## 目录结构 ``` . ├── articles/ # 教程文章(Markdown) ├── springboot4-xxx/ # 各主题可运行工程 ├── docker-compose.yml # 本地中间件编排 ``` ## 许可证 Copyright (c) 2018-2026 [Xiong Neng](https://www.xiongneng.me/) 基于 MIT 协议发布: