# spring-boot-example
**Repository Path**: luckSnow/spring-boot-example
## Basic Information
- **Project Name**: spring-boot-example
- **Description**: SpringBoot 全栈代码案例库🔥 千余 SpringBoot 实战案例,解锁企业级开发全场景 🔥
这里珍藏着 1000K+ 高质量 SpringBoot 代码案例,每一行代码都是经验的结晶!从基础模块搭建到复杂分布式系统设计,从微服务架构优化到高并发场景解决方案,完整覆盖企业级开发全生命周期。无论是新手入门进阶,还是资深工程师寻找灵感,这里都是你的第一选择!🌟
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 3
- **Created**: 2020-09-04
- **Last Updated**: 2026-03-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
🚀 Spring Boot Example
## 📖 项目介绍
SpringBoot 全栈代码案例库🔥 千余 SpringBoot 实战案例,解锁企业级开发全场景 🔥 这里珍藏着 1000K+ 高质量 SpringBoot 代码案例,每一行代码都是经验的结晶!从基础模块搭建到复杂分布式系统设计,从微服务架构优化到高并发场景解决方案,完整覆盖企业级开发全生命周期。无论是新手入门进阶,还是资深工程师寻找灵感,这里都是你的第一选择!🌟
### 🎯 项目特色
- **模块化设计**:80+个独立模块,每个模块专注一个技术点
- **实战导向**:所有示例均来自实际项目经验
- **技术全面**:覆盖Spring生态主流技术栈
- **易于学习**:代码结构清晰,注释详细
- **持续更新**:紧跟技术发展趋势
## 🏗️ 软件架构
### 核心设计理念
项目采用**模块化架构**,通过`lab_00_module`工具实现批量创建和管理Maven模块。每个技术领域都有对应的模块分类,便于开发者快速定位和学习。
### 模块结构
```
spring-boot-example/
├── lab_000_base_web/ # Web基础功能
├── lab_009_db_orm/ # 数据库ORM框架
├── lab_015_redis/ # Redis缓存技术
├── lab_030_cache/ # 缓存解决方案
├── lab_040_security/ # 安全框架
├── lab_050_job/ # 任务调度
├── lab_080_cfg_*/ # 配置中心
├── lab_090_mq/ # 消息队列
└── ... # 更多技术模块
```
### 模块创建工具
项目内置`lab_00_module`模块,提供以下功能:
- 批量创建Maven模块
- 统一模块配置管理
- 模块依赖关系维护
- `module.list`文件管理所有模块

## 🚀 技术栈
### 核心框架
| 技术 | 版本 | 说明 |
|------|------|------|
| Spring Boot | 2.3.3.RELEASE | 核心框架 |
| Spring Cloud | Hoxton.SR12 | 微服务框架 |
| Java | 11 | 开发语言 |
| Maven | 3.6+ | 构建工具 |
### 主要技术组件
🔧 Web开发
- **基础Web**: Spring MVC, RESTful API, 异常处理
- **模板引擎**: Thymeleaf, FreeMarker, Tiles
- **API文档**: Swagger, Knife4j, SpringDoc
- **Web容器**: 内嵌Tomcat, Jetty配置
💾 数据访问
- **ORM框架**: MyBatis, JPA, Hibernate
- **连接池**: Druid, HikariCP
- **数据库**: MySQL, PostgreSQL, Oracle
- **NoSQL**: Redis, MongoDB, Elasticsearch
🛡️ 安全认证
- **认证框架**: Spring Security, Shiro
- **加密解密**: AES, RSA, MD5
- **权限控制**: RBAC, OAuth2
🔄 微服务
- **服务注册**: Eureka, Nacos, Consul, Zookeeper
- **配置中心**: Nacos, Apollo
- **API网关**: Zuul, Spring Cloud Gateway
- **服务调用**: OpenFeign, Dubbo
- **负载均衡**: Ribbon, LoadBalancer
📋 中间件
- **消息队列**: RabbitMQ, Kafka, RocketMQ
- **缓存技术**: Redis, Caffeine, Ehcache
- **任务调度**: Quartz, XXL-JOB
- **分布式事务**: Seata
- **链路追踪**: Sleuth, OpenTelemetry
## 📊 项目统计
### 代码规模统计
| 年份 | 提交次数 | 新增代码行数 | 总代码行数 | 主要贡献者 |
|------|----------|-------------|-----------|------------|
| 2021 | 106次 | 373,275行 | 133,585行 | zhangxue |
| 2022 | 89次 | 223,509行 | 513,404行 | zhangxue |
| 2023 | 78次 | 270,000行 | 639,336行 | zhangxue |
| 2024 | 50次 | 370,000行 | 193,934行 | zhangxue |
| 2025 | 50次 | 410,000行 | 371,584行 | zhangxue |
### 技术栈分布 (2025年数据)
```bash
语言统计:
JavaScript 176,211行 (47.4%)
Java 77,550行 (20.9%)
CSS 43,443行 (11.7%)
HTML 41,568行 (11.2%)
Maven 11,308行 (3.0%)
XML 7,160行 (1.9%)
Python 2,435行 (0.7%)
其他语言 11,910行 (3.2%)
总计: 371,584行代码
```
## 📦 模块分类
### Web开发相关
```bash
lab_000_base_web/ # Web基础功能
├── AOP切面编程
├── 统一异常处理
├── 参数校验
├── 文件上传下载
├── 跨域配置
└── 性能监控
lab_003_web_apiDoc/ # API文档
├── Swagger2
├── Knife4j
├── SpringDoc
└── YApi
lab_004_webview/ # 模板引擎
├── Thymeleaf
├── FreeMarker
└── Tiles2
```
### 数据库相关
```bash
lab_009_db_orm/ # ORM框架
├── MyBatis
├── JPA/Hibernate
├── JdbcTemplate
├── MyBatis-Plus
├── FastMyBatis
└── DBUtils
lab_010_db_advanced/ # 数据库高级特性
├── 读写分离
├── 分库分表(ShardingSphere)
├── 分布式事务(Seata)
├── 连接池优化
└── 数据库监控
lab_011_db_more/ # 其他数据库
├── Elasticsearch
├── MongoDB
├── Neo4j
├── Solr
└── Lucene
```
### 缓存相关
```bash
lab_015_redis/ # Redis技术栈
├── Jedis客户端
├── Lettuce客户端
└── Redisson分布式锁
lab_030_cache/ # 缓存解决方案
├── Caffeine本地缓存
├── Ehcache
├── JetCache
└── 分布式缓存
```
### 微服务相关
```bash
lab_080_cfg_zk/ # Zookeeper配置
lab_081_cfg_eureka/ # Eureka服务注册
lab_082_cfg_nacos/ # Nacos配置中心
lab_083_cfg_consul/ # Consul服务发现
lab_094_ag_zuul/ # Zuul网关
lab_096_ag_gateway/ # Spring Cloud Gateway
```
### RPC相关
```bash
lab_074_rpc_dubbo_xml/ # Dubbo XML配置
lab_075_rpc_dubbo_annotation/ # Dubbo注解配置
lab_076_rpc_openfeign/ # OpenFeign客户端
lab_077_rpc_thrift/ # Thrift RPC
lab_078_rpc_dubbo3/ # Dubbo 3.x
```
### 其他重要模块
```bash
lab_040_security/ # 安全框架
├── Spring Security
├── Apache Shiro
└── 加密解密
lab_050_job/ # 任务调度
├── Quartz
├── Spring Task
├── XXL-JOB
└── 批处理
lab_090_mq/ # 消息队列
├── RabbitMQ
├── Kafka
└── RocketMQ
```
1.提交次数:106次
## 🚀 快速开始
### 环境要求
- **JDK**: 11+
- **Maven**: 3.6+
- **IDE**: IntelliJ IDEA / Eclipse
- **数据库**: MySQL 5.7+ (部分模块需要)
### 克隆项目
```bash
git clone https://gitee.com/zx19890628/spring-boot-example.git
cd spring-boot-example
```
### 构建项目
```bash
# 构建所有模块
mvn clean install -DskipTests
# 构建指定模块
mvn clean install -pl lab_000_base_web -am
```
### 运行示例
```bash
# 运行基础Web模块
cd lab_000_base_web
mvn spring-boot:run
# 访问应用
http://localhost:8080
```
### 模块选择指南
根据您的学习需求选择相应模块:
| 学习目标 | 推荐模块 | 说明 |
|----------|----------|------|
| Web开发基础 | `lab_000_base_web` | Spring MVC基础功能 |
| 数据库操作 | `lab_009_db_orm` | MyBatis/JPA等ORM框架 |
| 缓存使用 | `lab_015_redis` | Redis缓存技术 |
| 微服务入门 | `lab_081_cfg_eureka` | Eureka服务注册发现 |
| 安全框架 | `lab_040_security` | Spring Security/Shiro |
| 消息队列 | `lab_090_mq` | RabbitMQ/Kafka使用 |
## 📚 使用指南
### 1. 模块结构说明
每个模块都遵循标准的Maven项目结构:
```
module-name/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/zx/模块名/
│ │ │ ├── controller/ # 控制器
│ │ │ ├── service/ # 业务逻辑
│ │ │ ├── repository/ # 数据访问
│ │ │ └── config/ # 配置类
│ │ └── resources/
│ │ ├── application.yml # 配置文件
│ │ └── static/ # 静态资源
│ └── test/ # 测试代码
├── pom.xml # Maven配置
└── README.md # 模块说明
```
### 2. 配置文件说明
大部分模块使用标准的`application.yml`配置:
```yaml
server:
port: 8080
spring:
application:
name: module-name
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: password
logging:
level:
com.zx: debug
```
### 3. 常见问题解决
🔧 端口占用问题
```bash
# Windows查看端口占用
netstat -ano | findstr :8080
# Linux查看端口占用
netstat -tuln | grep 8080
```
🔧 依赖下载失败
```bash
# 清理本地仓库缓存
mvn dependency:purge-local-repository
# 强制更新依赖
mvn clean install -U
```
🔧 数据库连接问题
检查以下配置:
- 数据库服务是否启动
- 连接URL是否正确
- 用户名密码是否正确
- 驱动版本是否匹配
2. 增加代码:373,275行
```shell
$ git log --format='%aN' --since="2021-01-01" --until="2021-12-31" | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
1039791136 added lines: 202302, removed lines: 15018, total lines: 187284
xuezzzhang added lines: 687, removed lines: 326, total lines: 361
zhangxue added lines: 193719, removed lines: 8374, total lines: 185345
zhangxue01 added lines: 286, removed lines: 1, total lines: 285
```
3. 项目代码量
```shell
D:\workspace-2021\spring-boot-example\cloc-1.64.exe D:\workspace-2021\spring-boot-example
2985 text files.
2270 unique files.
5177 files ignored.
http://cloc.sourceforge.net v 1.64 T=13.23 s (129.5 files/s, 14284.2 lines/s)
----------------------------------------------------------------------------------------
Language files blank comment code
----------------------------------------------------------------------------------------
Javascript 224 12256 15936 65899
Java 925 9306 9309 36909
HTML 95 1173 1040 8460
XML 257 351 675 5708
Maven 90 339 169 5615
CSS 17 440 405 2433
ColdFusion CFScript 2 208 30 1359
SQL 7 147 75 1328
ColdFusion 12 300 384 1211
Python 16 266 394 987
Perl 8 200 410 969
PHP 9 231 346 817
ASP 8 188 296 702
YAML 22 55 296 437
Velocity Template Language 6 64 67 351
ASP.Net 3 13 4 145
JSP 8 13 0 139
JSON 2 0 0 100
Lua 1 3 22 10
RobotFramework 2 0 0 6
----------------------------------------------------------------------------------------
SUM: 1714 25553 29858 133585
----------------------------------------------------------------------------------------
```
## 代码统计[2022年]
1.提交次数:89次
```shell
$ git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since="2022-01-01" --until="2022-12-31" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l; done
```
2. 增加代码:223,509行
```shell
$ git log --format='%aN' --since="2022-01-01" --until="2022-12-31" | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
1039791136@qq.com added lines: 260991, removed lines: 38990, total lines: 222001
xuezzzhang added lines: 2031, removed lines: 523, total lines: 1508
```
3. 项目代码量
```shell
D:\workspace\spring-boot-example\lab_0_common\src\main\resources\exe\cloc-1.64.exe D:\workspace\spring-boot-example
4049 text files.
3095 unique files.
4843 files ignored.
http://cloc.sourceforge.net v 1.64 T=19.33 s (134.4 files/s, 35871.9 lines/s)
----------------------------------------------------------------------------------------
Language files blank comment code
----------------------------------------------------------------------------------------
Javascript 452 37468 69064 406526
Java 1127 11504 11899 49253
TypeScript 72 2555 36888 13825
HTML 143 1377 1051 10380
XML 411 373 699 8348
Maven 103 405 208 6405
JSON 69 62 0 3405
CSS 20 461 408 2651
Python 25 541 693 2435
SQL 28 316 141 2285
ColdFusion CFScript 2 208 30 1359
ColdFusion 12 300 384 1211
YAML 41 131 432 1042
Perl 8 200 410 969
PHP 9 231 346 817
Bourne Shell 27 165 144 777
ASP 8 188 296 702
Velocity Template Language 6 64 67 351
DOS Batch 11 81 29 176
JSP 10 13 0 164
ASP.Net 3 13 4 145
PowerShell 6 6 30 132
Ant 1 8 2 30
Lua 1 3 22 10
RobotFramework 2 0 0 6
CoffeeScript 1 1 0 0
----------------------------------------------------------------------------------------
SUM: 2598 56674 123247 513404
----------------------------------------------------------------------------------------
```
## 代码统计[2023年]
1.提交次数:78次
```shell
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since="2023-01-01" --until="2023-12-31" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l; done
```
2. 增加代码:27W
```shell
$ git log --format='%aN' --since="2022-01-01" --until="2022-12-31" | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
1039791136 added lines: 319251, removed lines: 46086, total lines: 273165
lucksnow added lines: 202, removed lines: 72, total lines: 130
zhangxue07 added lines: 1014, removed lines: 243, total lines: 771
```
3. 项目代码量
```shell
D:\workspace\spring-boot-example\lab_0_common\src\main\resources\exe\cloc-1.64.exe D:\workspace\spring-boot-example
5567 text files.
4296 unique files.
7402 files ignored.
http://cloc.sourceforge.net v 1.64 T=33.73 s (104.3 files/s, 25345.1 lines/s)
----------------------------------------------------------------------------------------
Language files blank comment code
----------------------------------------------------------------------------------------
Javascript 456 38408 70290 409342
HTML 802 1509 26171 108788
Java 1427 14380 16310 63588
TypeScript 72 2555 36888 13825
CSS 24 642 472 10441
XML 328 435 911 8866
Maven 123 597 365 7742
JSON 80 62 0 4028
Python 25 541 693 2435
SQL 28 316 141 2285
ColdFusion CFScript 2 208 30 1359
ColdFusion 12 300 384 1211
YAML 40 130 464 1071
Perl 8 200 410 969
Bourne Shell 33 179 172 852
PHP 9 231 346 817
ASP 8 188 296 702
Velocity Template Language 6 64 67 351
DOS Batch 12 81 29 177
JSP 10 13 0 164
ASP.Net 3 13 4 145
PowerShell 6 6 30 132
Ant 1 8 2 30
Lua 1 3 22 10
RobotFramework 2 0 0 6
CoffeeScript 1 1 0 0
----------------------------------------------------------------------------------------
SUM: 3519 61070 154497 639336
----------------------------------------------------------------------------------------
```
## 代码统计[2024年]
1.提交次数:50次
```shell
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since="2024-01-01" --until="2024-12-31" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l; done
```
2. 增加代码:37W
```shell
git log --format='%aN' --since="2024-01-01" --until="2024-12-31" | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
1039791136 added lines: 377586, removed lines: 92288, total lines: 285298
```
3. 项目代码量
```shell
D:\workspace\spring-boot-example\lab_0_common\src\main\resources\exe\cloc-1.64.exe D:\workspace\spring-boot-example
3424 text files.
2975 unique files.
4650 files ignored.
http://cloc.sourceforge.net v 1.64 T=28.63 s (90.3 files/s, 9478.1 lines/s)
----------------------------------------------------------------------------------------
Language files blank comment code
----------------------------------------------------------------------------------------
Java 1658 16232 18859 71511
Javascript 235 13211 17203 68875
HTML 170 1493 1071 13014
CSS 23 632 441 9908
Maven 146 769 520 9423
XML 132 434 920 7399
Python 25 541 693 2435
SQL 28 316 141 2285
ColdFusion CFScript 2 208 30 1359
JSON 22 0 0 1241
ColdFusion 12 300 384 1211
YAML 44 138 504 1011
Bourne Shell 33 183 224 977
Perl 8 200 410 969
PHP 9 231 346 817
ASP 8 188 296 702
Velocity Template Language 6 64 67 351
JSP 10 13 0 164
ASP.Net 4 13 4 146
DOS Batch 6 69 29 90
Ant 1 8 2 30
Lua 1 3 22 10
RobotFramework 2 0 0 6
----------------------------------------------------------------------------------------
SUM: 2585 35246 42166 193934
----------------------------------------------------------------------------------------
```
## 代码统计[2025年]
1.提交次数:50次
```shell
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since="2025-01-01" --until="2025-12-31" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l; done
```
2. 增加代码:41W
```shell
git log --format='%aN' --since="2025-01-01" --until="2025-12-31" | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
1039791136 added lines: 377586, removed lines: 92288, total lines: 285298
zhangxue warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your diff.renameLimit variable to at least 1228 and retry the command.
added lines: 445244, removed lines: 34950, total lines: 410294
```
3. 项目代码量
```shell
D:\workspace\spring-boot-example\lab_0_common\src\main\resources\exe\cloc-1.64.exe D:\workspace\spring-boot-example
5832 text files.
4626 unique files.
8850 files ignored.
http://cloc.sourceforge.net v 1.64 T=45.99 s (86.7 files/s, 10537.6 lines/s)
----------------------------------------------------------------------------------------
Language files blank comment code
----------------------------------------------------------------------------------------
Javascript 650 27870 29667 176211
Java 1938 17909 19504 77550
CSS 231 1113 694 43443
HTML 633 4390 4042 41568
Maven 183 498 364 11308
XML 115 433 920 7160
Python 25 541 693 2435
SQL 27 312 141 2272
JSON 32 3 0 1631
ColdFusion CFScript 2 208 30 1359
ColdFusion 12 300 384 1211
YAML 48 142 511 1097
Bourne Shell 34 192 224 990
Perl 8 200 410 969
PHP 11 249 347 892
ASP 8 188 296 702
Velocity Template Language 6 64 67 351
JSP 9 13 0 153
ASP.Net 4 13 4 146
DOS Batch 6 69 29 90
Ant 1 8 2 30
Lua 1 3 22 10
RobotFramework 2 0 0 6
----------------------------------------------------------------------------------------
SUM: 3986 54718 58351 371584
----------------------------------------------------------------------------------------
```
## 🤝 贡献指南
欢迎任何形式的贡献!
### 贡献方式
1. **提交Issue**
- 报告Bug
- 提出功能建议
- 讨论技术问题
2. **提交Pull Request**
- Fork项目
- 创建特性分支
- 提交代码变更
- 发起Pull Request
### 开发规范
- 遵循Spring Boot最佳实践
- 代码注释使用中文
- 单元测试覆盖率≥80%
- 遵循统一的代码风格
### 新增模块流程
```bash
# 1. 使用模块创建工具
cd lab_00_module
# 编辑 module.list 添加新模块
# 2. 生成新模块
mvn clean compile
# 3. 开发测试
# 在新模块中添加功能代码
# 4. 提交代码
```
## 👥 贡献者
感谢所有为项目做出贡献的开发者:
| 贡献者 | 贡献次数 | 主要贡献领域 |
|--------|----------|--------------|
| zhangxue | 1000+ | 核心架构、模块开发 |
| 1039791136@qq.com | 500+ | 功能完善、Bug修复 |
| xuezzzhang | 100+ | 工具模块、文档 |
| zhangxue07 | 50+ | 测试、优化 |
| lucksnow | 20+ | 新特性开发 |
## 📄 许可证
本项目采用 **MIT** 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
```text
MIT License
Copyright (c) 2021-2025 Zhang Xue
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
```
## 📞 联系方式
- **作者**: Zhang Xue
- **邮箱**: 1039791136@qq.com
- **Gitee**: [https://gitee.com/zx19890628](https://gitee.com/zx19890628)
- **项目地址**: [https://gitee.com/zx19890628/spring-boot-example](https://gitee.com/zx19890628/spring-boot-example)
## 🌟 Star History
[](https://star-history.com/#zx19890628/spring-boot-example&Date)
---
如果这个项目对您有帮助,请给个⭐Star支持一下!