# 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

Spring Boot Version Java Version Module Count License

## 📖 项目介绍 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`文件管理所有模块 ![模块创建工具界面](https://images.gitee.com/uploads/images/2020/0906/212339_98f7cf91_635176.png "模块管理界面") ## 🚀 技术栈 ### 核心框架 | 技术 | 版本 | 说明 | |------|------|------| | 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 [![Star History Chart](https://api.star-history.com/svg?repos=zx19890628/spring-boot-example&type=Date)](https://star-history.com/#zx19890628/spring-boot-example&Date) ---

如果这个项目对您有帮助,请给个⭐Star支持一下!