系统化知识体系
从环境搭建到项目实战,10 章循序渐进,覆盖 Spring Boot 核心技术栈,构建完整知识框架
开始学习 →
学习建议
建议按顺序学习,每章配套代码示例和实操练习。基础好的同学可以直接跳到感兴趣的章节。
| 章节 | 核心内容 | 学习目标 | 拓展亮点 |
|---|---|---|---|
| 第 1 章 · Spring Boot 开发入门 | 环境搭建、起步依赖、自动配置原理、热部署、项目打包 | 能独立搭建 Spring Boot 项目,理解核心概念 | Spring Boot 2/3 版本差异、Maven/Gradle 对比、GraalVM 原生打包 |
| 第 2 章 · Spring Boot 配置 | properties/yml 语法、配置绑定、多环境 Profile、配置优先级 | 熟练掌握配置体系,能灵活管理多环境配置 | Nacos/Apollo 配置中心、敏感配置加密、配置中心选型 |
| 第 3 章 · Web 应用支持 | MVC 定制、三大组件、参数校验、跨域、文件上传、异常处理 | 能独立开发 RESTful API,掌握 Web 开发核心技能 | RESTful 规范、全局异常封装、CORS 底层原理、接口版本管理 |
| 第 4 章 · 整合 Thymeleaf | 模板语法、常用属性、表达式、表单处理、页面布局 | 能使用模板引擎开发服务端渲染页面 | 前后端分离选型、Vue 对比、模板缓存优化、国际化 |
| 章节 | 核心内容 | 学习目标 | 拓展亮点 |
|---|---|---|---|
| 第 5 章 · 数据访问 | MyBatis-Plus 实战、Spring Data JPA、Redis 基础、连接池 | 掌握多种数据访问技术,能根据场景选型 | Hikari/Druid 对比、逻辑删除/乐观锁、缓存一致性、分页优化 |
| 第 6 章 · 整合缓存 | Spring Cache 注解、Ehcache 本地缓存、Redis 集中缓存 | 掌握缓存技术,能设计合理的缓存方案 | 缓存三大问题、多级缓存架构、热点 Key 治理、缓存预热 |
| 第 7 章 · 安全管理 | Spring Security 认证授权、自定义登录、会话管控、CSRF | 掌握安全框架,能实现完整的权限控制 | Shiro/Sa-Token 对比、JWT 无状态鉴权、RBAC 模型、OAuth2 |
| 第 8 章 · 消息服务 | RabbitMQ 六大模式、生产者消费者、消息持久化 | 掌握消息队列,能实现异步解耦削峰 | RocketMQ/Kafka 选型、消息幂等性、死信队列、积压处理 |
| 第 9 章 · 任务调度和邮件 | 异步任务、Schedule 定时任务、Quartz 框架、邮件发送 | 掌握任务调度和邮件发送,能处理定时任务 | XXL-Job 分布式调度、集群防重复、邮件模板、任务分片 |
| 章节 | 核心内容 | 项目亮点 | 可写进简历 |
|---|---|---|---|
| 第 10 章 · 瑞吉外卖实战项目 | 员工/菜品/套餐/订单全业务、事务控制、DTO 设计、ThreadLocal | 完整 B 端 + C 端业务、MyBatis-Plus + Redis、全局异常、自动填充 | ✅ 可直接作为简历核心项目经历 |
企业开发不是只会一种技术就行,要懂得根据场景选择最合适的方案。
| 技术 | 类型 | SQL 控制 | 开发效率 | 性能 | 学习曲线 | 适用场景 |
|---|---|---|---|---|---|---|
| MyBatis-Plus | 半 ORM | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | 国内主流,业务复杂 SQL 多 |
| Spring Data JPA | 全 ORM | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | 简单 CRUD、快速原型 |
| JdbcTemplate | 轻量封装 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ | 极致性能、特殊需求 |
| 框架 | 功能丰富度 | 易用性 | Spring 集成 | 社区生态 | 国内流行度 | 推荐场景 |
|---|---|---|---|---|---|---|
| Spring Security | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Spring 技术栈、复杂权限 |
| Sa-Token | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | 快速开发、国内项目 |
| Apache Shiro | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | 老项目、轻量需求 |
| MQ | 性能 | 延迟 | 功能丰富度 | 运维复杂度 | 生态 | 推荐场景 |
|---|---|---|---|---|---|---|
| RabbitMQ | 万级 | 微秒级 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | 中小项目、功能需求多 |
| RocketMQ | 十万级 | 毫秒级 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | 电商、金融、国内大厂 |
| Kafka | 百万级 | 毫秒级 | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 大数据、日志、流处理 |
| 缓存 | 速度 | 容量 | 分布式 | 持久化 | 功能 | 适用场景 |
|---|---|---|---|---|---|---|
| Caffeine | 极快 | 小(内存) | ❌ | ❌ | ⭐⭐⭐ | 本地缓存、热点数据 |
| Redis | 快 | 大 | ✅ | ✅ | ⭐⭐⭐⭐⭐ | 分布式缓存、全场景 |
| Ehcache | 快 | 中 | ⭐ | ✅ | ⭐⭐⭐⭐ | 传统项目、Hibernate |
课本之外的硬核知识,拉开差距的关键。
spring.threads.virtual.enabled=true 一行配置开启应届生后端面试高频题,每道都要掌握。
Spring Boot 自动配置原理是什么?
Spring Boot 启动流程?
starter 起步依赖原理?
Spring Boot 如何实现热部署?
缓存穿透、击穿、雪崩的区别和解决方案?
缓存和数据库怎么保证一致性?
为什么要用消息队列?
怎么保证消息不丢失?
怎么保证消息幂等性?
MyBatis 一级缓存和二级缓存的区别?
事务的传播行为有哪些?
分布式锁怎么实现?
分布式事务怎么解决?
面试建议
这些坑,90% 的新手都踩过。
| 坑点 | 现象 | 原因 | 解决方案 |
|---|---|---|---|
| AOP 同类调用失效 | 同类方法调用,事务/缓存不生效 | AOP 基于代理,同类调用不走代理 | 注入自己 / 用 AopContext / 拆分类 |
| Long 类型前端精度丢失 | 后端 Long ID,前端拿到后几位变 0 | JS Number 最大安全整数是 2^53 | 转字符串 / Jackson 序列化配置 |
| 事务不回滚 | 抛了异常但事务没回滚 | 异常类型不对 / 方法不是 public / 同类调用 | 检查异常类型、方法修饰符、代理问题 |
| 配置不生效 | 改了配置但没效果 | 优先级问题 / 拼写错误 / 没重启 | 用 debug 模式看生效配置 |
| 跨域不生效 | 配置了 CORS 还是跨域 | 拦截器顺序问题 / 预检请求被拦截 | 用 CorsFilter / 调整顺序 |
| Redis 序列化乱码 | Redis 里的 key 是 \xAC\xED 这种 | 默认 JDK 序列化 | 配置 Jackson2JsonRedisSerializer |
| 文件上传大小限制 | 上传大文件报错 | 默认 1MB 限制 | 配置 spring.servlet.multipart |
| 循环依赖 | 启动报错 BeanCurrentlyInCreation | A 依赖 B,B 依赖 A | 用 @Lazy / 重构代码 / 三级缓存 |
| 日期格式化问题 | 前端日期格式不对 / 时区不对 | Jackson 默认格式 / 时区问题 | 配置 date-format / time-zone |
| 静态资源 404 | 静态资源访问不到 | 路径不对 / 拦截器拦截了 | 检查静态资源位置、排除拦截 |
--debug,看自动配置报告第一阶段:基础入门(2 周)
第二阶段:核心进阶(3 周)
第三阶段:项目实战(2 周)
第四阶段:拓展提升(持续)
项目名称:瑞吉外卖 — 基于 Spring Boot 的外卖点餐系统
技术栈:
项目描述:
项目亮点(一定要写):
注意
项目要真的做过,面试会深挖细节。不要写自己不懂的技术,一问就露馅。
入职第一周:
代码提交规范:
沟通技巧:
快速成长秘诀:
可以在这里记录自己的学习进度,打勾打卡。
适用人群:
版本说明:
学习建议:
💬 共勉:编程是个手艺活,靠的是积累。没有捷径,就是多练、多想、多总结。坚持下去,你会越来越强。
快速开始
准备好了吗?点击下方按钮,开始你的 Spring Boot 学习之旅!