{"id":14972980,"url":"https://github.com/javastacks/spring-boot-best-practice","last_synced_at":"2026-02-28T05:27:10.743Z","repository":{"id":37735168,"uuid":"156819424","full_name":"javastacks/spring-boot-best-practice","owner":"javastacks","description":"Spring Boot 最佳实践，包括自动配置、核心原理、源码分析、国际化支持、调试、日志集成、热部署等。","archived":false,"fork":false,"pushed_at":"2026-02-27T11:10:33.000Z","size":330,"stargazers_count":5012,"open_issues_count":4,"forks_count":1356,"subscribers_count":98,"default_branch":"master","last_synced_at":"2026-02-27T15:11:09.370Z","etag":null,"topics":["java","spring","springboot"],"latest_commit_sha":null,"homepage":"https://www.javastack.cn","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javastacks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-11-09T06:23:18.000Z","updated_at":"2026-02-27T11:10:37.000Z","dependencies_parsed_at":"2024-12-24T12:06:06.584Z","dependency_job_id":"0c4bfff2-4236-493d-9bf7-43ad61eda570","html_url":"https://github.com/javastacks/spring-boot-best-practice","commit_stats":{"total_commits":120,"total_committers":2,"mean_commits":60.0,"dds":"0.17500000000000004","last_synced_commit":"c51b9ebaf78bbd60b19746b9d393c00544ecf428"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/javastacks/spring-boot-best-practice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javastacks%2Fspring-boot-best-practice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javastacks%2Fspring-boot-best-practice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javastacks%2Fspring-boot-best-practice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javastacks%2Fspring-boot-best-practice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javastacks","download_url":"https://codeload.github.com/javastacks/spring-boot-best-practice/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javastacks%2Fspring-boot-best-practice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29925683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","spring","springboot"],"created_at":"2024-09-24T13:47:52.728Z","updated_at":"2026-02-28T05:27:10.738Z","avatar_url":"https://github.com/javastacks.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# spring-boot-best-practice\n\n中文 | [English](./README.en.md)\n\n\u003e :rocket: 本仓库提供了 Spring Boot 主流知识点实战示例，大家可以随意下载学习。\n\u003e\n\u003e :star: 本项目会长期更新，为避免迷路，请点击右上角 **Star** 关注本项目。\n\n## :fire: 为什么要学 Spring Boot？\n\n\u003e 本仓库已适配 **Spring Boot 4.x**，当前基线版本为 **Spring Boot 4.0.3**，配套 **Spring Framework 7.x** 与 **Java 21**。\n\u003e \n\u003e 所有示例均围绕真实开发场景构建，既可作为 Spring Boot 学习仓库，也可作为 Spring Boot 4.x 升级与迁移参考。\n\nSpring 作为 Java 开发界的万能框架，曾经和 Struts2、Hibernate 框架组成 SSH，成为 Java Web 开发的三驾马车。大概在 2013 年左右，又和 Spring MVC、MyBatis 框架组成 SSM，成为新一代的 Web 开发框架全家桶，一直流行延续至今。\n\n**而为了简化 Spring 框架的上手难度**，Spring Boot 框架于 2014 年诞生，可以帮助开发者更加轻松、快捷地使用 Spring 的组件，它是 Spring、Spring MVC 等框架更上一层的框架，它需要依赖于 Spring、Spring MVC 等原生框架，而不能独立存在。\n\n学会 Spring Boot，可以简化使用 Spring 基础组件的难度，还是学习 Spring Cloud 微服务框架的基础，**因为 Spring Cloud 的基础就是 Spring Boot。**\n\nSpring Boot 代表了企业的真实需求，它表现在 Java 工程师、架构师的**求职面试技能清单上，Spring Boot 几乎是必备技能。** 所以，要成为合格的 Java 程序员，要学习 Spring 全家桶，Spring Boot 则是必经之路。\n\n## :pushpin: 模块说明\n\n本仓库采用 Maven 多模块组织方式，覆盖 **Spring Boot 常见核心能力、数据访问、消息中间件、运维治理、容器部署与工程实践**等主题，方便按专题学习和按模块验证。\n\n| 模块名称 | 模块说明 |\n| --- | --- |\n| `spring-boot-quick-start` | Spring Boot 快速入门与基础启动示例。 |\n| `spring-boot-application` | 应用启动、异步调用与应用级基础能力示例。 |\n| `spring-boot-web` | Spring MVC Web 基础能力示例，包括消息转换、拦截器、Servlet 注册等。 |\n| `spring-boot-webflux` | Spring WebFlux 与 `WebClient` 响应式开发示例。 |\n| `spring-boot-logging` | Spring Boot 日志体系与日志输出配置示例。 |\n| `spring-boot-test` | Spring Boot 测试体系示例，包括 `MockMvc`、`MockBean`、JSON 测试等。 |\n| `spring-boot-aop` | Spring AOP 切面编程示例。 |\n| `spring-boot-mail` | Spring Boot 邮件发送示例。 |\n| `spring-boot-properties` | 配置文件、配置绑定与自定义属性类示例。 |\n| `javastack-spring-boot-starter` | 自定义 Spring Boot Starter 开发示例。 |\n| `javastack-spring-boot-starter-sample` | 自定义 Starter 的接入与使用示例。 |\n| `spring-boot-jetty` | 使用 Jetty 作为嵌入式 Web 容器的示例。 |\n| `spring-boot-redis` | Redis 集成、缓存访问与常用操作示例。 |\n| `spring-boot-mongodb` | MongoDB 集成示例。 |\n| `spring-boot-elasticsearch` | Elasticsearch 集成示例。 |\n| `spring-boot-session` | Spring Session 分布式会话管理示例。 |\n| `spring-boot-docker` | Docker 镜像构建、分层打包与容器化部署示例。 |\n| `spring-boot-features` | Spring Boot 常见特性与启动行为示例。 |\n| `spring-boot-datasource` | 多数据源、Druid 与 JDBC/JdbcClient 数据访问示例。 |\n| `spring-boot-jpa` | Spring Data JPA 数据持久化示例。 |\n| `spring-boot-activemq` | ActiveMQ 消息队列集成示例。 |\n| `spring-boot-rabbitmq` | RabbitMQ 消息队列集成示例。 |\n| `spring-boot-kafka` | Kafka 消息队列集成示例。 |\n| `spring-boot-cache` | Spring Cache 缓存抽象与缓存注解示例。 |\n| `spring-boot-mybatis` | MyBatis 数据访问示例。 |\n| `spring-boot-mybatis-plus` | MyBatis-Plus 增强数据访问示例。 |\n| `spring-boot-flyway` | Flyway 数据库版本管理与迁移示例。 |\n| `spring-boot-mapstruct` | MapStruct 对象映射转换示例。 |\n| `spring-boot-jasypt` | Jasypt 配置加解密示例。 |\n| `spring-boot-knife4j` | Knife4j 集成示例。 |\n| `spring-boot-tinylog` | Tinylog 日志框架集成示例。 |\n| `spring-boot-schedule` | Spring 定时任务调度示例。 |\n| `spring-boot-quartz` | Quartz 任务调度框架集成示例。 |\n| `spring-boot-graalvm` | GraalVM / Native Image 相关示例。 |\n| `spring-boot-war` | WAR 包部署与外部 Servlet 容器适配示例。 |\n| `spring-boot-actuator` | Actuator 监控端点与应用治理示例。 |\n| `spring-boot-admin-server` | Spring Boot Admin Server 监控中心示例。 |\n| `spring-boot-admin-client` | Spring Boot Admin Client 被监控端接入示例。 |\n\n## :heart: Spring Boot 学习资料\n\n这里分享一份 **Spring Boot 学习资料**，包括 Spring Boot 底层实现原理及代码实战，非常齐全，助你快速打通 Spring Boot 的各个环节。\n\n**详细目录如下：**\n\n- Spring Boot Hello World\n- Spring Boot 返回 JSON 数据\n- Spring Boot 使用其他 JSON 转换框架\n- Spring Boot 全局异常捕捉\n- Spring Boot JPA 连接数据库\n- Spring Boot 配置 JPA\n- Spring Boot 整合 JPA 保存数据\n- Spring Boot 使用 JdbcTemplate 保存数据\n- Spring Boot 常用配置\n- Spring Boot 静态资源处理\n- Spring boot 实现任务调度 \n- Spring Boot 普通类调用 Bean\n- Spring Boot 使用模板引擎\n- Spring Boot 集成 JSP\n- Spring Boot 集成 Servlet\n- Spring Boot 集成 Fliter 和 Listener\n- Spring Boot 拦截器 HandlerInterceptor\n- Spring Boot 系统启动任务 CommandLineRunner\n- Spring Boot 集成 JUnit 单元测试\n- Spring Boot 读取系统环境变量\n- Spring Boot 使用自定义 properties\n- Spring Boot 改变默认包扫描\n- Spring Boot 自定义启动 Banner\n- Spring Boot 导入 Spring XML 配置文件\n- Spring Boot 热部署\n- Spring Boot 监控和管理生产环境\n- Spring Boot Starter 详解\n- Spring Boot 依赖的版本\n- Spring Boot 文件上传\n- Spring Boot 集成 Redis 缓存\n- Spring Boot 之 Spring Cache\n- Spring Boot 集成 Ehcache\n- Spring Boot 分布式 Session 共享\n- ......\n\n**共 108 页！非常齐全！**\n\n**获取方式如下：**\n\n这份教程免费分享给大家，微信扫码关注 **Java技术栈** 公众号：\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"http://img.javastack.cn/18-11-16/79719805.jpg\"\u003e\n\u003c/p\u003e\n\n关注后，在公众号后台发送关键字：**666**，公众号会自助推送给你（非最新教程，仅提供参考学习）。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavastacks%2Fspring-boot-best-practice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavastacks%2Fspring-boot-best-practice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavastacks%2Fspring-boot-best-practice/lists"}