这门课解决什么问题

很多做 Java 开发的人,日常写业务接口很顺,但一遇到应用启动报错、Bean 循环依赖、自动配置失效,或者需要改造中间件时就抓瞎。问题在于只把 SpringBoot 当黑盒用,不知道注解背后跑的是什么逻辑。这门资料聚焦 SpringBoot 源码和核心原理,不是教你写增删改查,而是带你拆解启动流程、自动装配和 IOC 容器初始化,搞懂框架在启动时到底做了什么。它适合已经写过几个 SpringBoot 项目、能独立调通接口,但想往高级开发、架构或中间件改造走的人。完全没碰过 Java 或连依赖注入概念都陌生的,建议先补基础再看。

建议先看哪几块,资料怎么配合练习

不要从头到尾按顺序读,容易陷在细节里。建议先看开篇的约定和入门程序原理,建立整体认知;接着直接跳到自动装配部分,这是 SpringBoot 区别于传统框架的核心,务必结合 WebMvc 自动装配实例对照看;最后再看 IOC 容器准备和刷新流程,这部分逻辑链最长。资料里有大量原理拆解,必须边看边在自己电脑上跑代码:准备一个干净的 SpringBoot 项目,用断点单步跟进启动主方法,对照资料里讲的包扫描、后置处理器注册、单实例 Bean 初始化顺序,看断点停在哪一步。遇到看不懂的章节,不要硬抠,先记下结论继续往后走,等把整条链路串起来再回头补细节。

学完能独立做什么

看完这套资料,你不一定能立刻写出完整框架,但能独立做几件实事:一是遇到启动阶段或 Bean 初始化报错,能根据异常栈定位到源码具体环节,而不是只靠搜索引擎;二是能看懂官方自动配置类的工作机制,需要时可以自己写一个 Starter,按条件装配自定义组件;三是遇到需要扩展框架功能,比如加自定义监听器、在后置处理器里做逻辑增强,知道该在哪个节点切入。这些能力正是从写业务代码往底层架构走的关键一步。


从熟悉的场景逐步深入源码底层,理解SpringBoot的设计和原理。

课程目录

*   开篇:为什么要了解SpringBoot原理?

*   开始前的约定:关于本小册的一些前置说明

*   启动引导:SpringBoot入门程序原理概述和包扫描

*   启动引导:SpringBoot的核心-自动装配(一)

*   启动引导:SpringBoot的核心-自动装配(二)

*   启动引导:SpringBoot的自动装配实例-WebMvc

*   IOC:SpringFramework与SpringBoot的IOC

*   IOC:SpringBoot准备IOC容器

*   IOC:准备运行时环境

*   IOC:创建、初始化IOC容器

*   IOC:刷新容器-BeanFactory的预处理

*   IOC:刷新容器-BeanFactory的后处理和组件扫描

*   IOC:刷新容器-后置处理器、监听器的注册

*   IOC:刷新容器-初始化剩余的单实例Bean

*   IOC:刷新容器-循环依赖与解决方案

*   IOC:刷新后的处理&SpringBoot在刷新容器时的扩展

*   IOC:小结与收获

*   AOP:注解使用AOP基础与@EnableAspectJAutoProxy的作用

*   AOP:AnnotationAwareAspectJAutoProxyCreator的后置处理功能

*   AOP:jdk动态代理&Cglib的执行调用链

*   声明式事务:生效原理

*   声明式事务:工作原理

*   声明式事务:事务传播行为原理

*   AOP+事务:小结与收获

*   WebMvc:自动装配回顾与DispatcherServlet组件

*   WebMvc:DispatcherServlet的工作原理

*   嵌入式容器:创建过程回顾和深入配置

*   嵌入式容器:嵌入式Tomcat的优化和配置

*   WebFlux:快速了解响应式编程与Reactive

*   WebFlux:快速使用WebFlux

*   WebFlux:WebFlux的自动装配

*   WebFlux:DispatcherHandler的工作原理-传统方式

*   WebFlux:DispatcherHandler的工作原理-函数式端点

*   JarLauncher:应用打jar包后的运行原理

*   尾声:源码不是终点

*   问题反馈与汇总

*   小册内容变动记录