先看它解决什么工作场景

很多人用 Spring Boot 两三年,写业务没问题,但一遇到启动报错、自动配置不生效、自定义 starter 冲突,就只能靠搜索引擎碰运气。这门专题针对的正是这类场景:把 Spring Boot 从启动到自动装配的链路拆开讲一遍,让你在排查问题时知道该往哪一层看,而不是反复改配置试错。

它不教你怎么写增删改查,也不涉及微服务拆分和分布式事务。内容集中在框架自身的运行机制上,属于「用过之后回头补原理」的类型。如果你目前只是跟着教程搭过项目,还没独立处理过启动阶段的疑难问题,学起来会偏吃力。

适合什么基础,先看哪几块

比较合适的前置条件是:能独立写 Spring Boot 接口,熟悉注解的基本用法,对 Maven 依赖关系有概念,最好动手配过一次自定义配置类。完全没接触过 Spring 的转行者,建议先把 IoC 和 AOP 的基本用法跑通再来。

内容按阶段推进,前半段围绕核心原理展开,包括三个基本机制、环境搭建、starter 的引入方式与自动注解、内置容器的处理,最后有一节做整体梳理。这部分是整门课的骨架,建议优先看,尤其是画图讲解那一节,先把调用顺序在脑子里建立起来,再去看代码细节会顺很多。

后半段进入初始化器的实现,从「为什么要自定义」讲起,再落到具体写法。如果你所在的项目需要在启动阶段做一些定制动作,比如加载特定配置、注册扩展点,这部分可以直接对应到工作里。顺序上不建议跳着看,初始化器建立在前面启动流程的理解之上。

学完能独立做什么,资料怎么配合练习

学完之后,比较现实的预期是:能自己读 Spring Boot 的启动日志,判断问题出在配置加载、条件装配还是容器启动阶段;能写一个可用的自定义 starter 并在项目里验证;能根据源码定位某个自动配置类为什么没有生效。这些都属于排查和扩展能力,不是架构设计能力,别把预期放得太高。

练习方式上,建议每看完一个阶段就回到自己的项目里做一次对照:把启动过程打上断点走一遍,或者故意写一个不生效的配置,看它卡在哪一步。初始化器部分最好自己动手实现一个简单版本,哪怕功能很小,跑通一次比看十遍视频有用。视频里的环境搭建环节不要跳过,版本差异会直接影响你后面跟代码的结果。

整体来看,这是一门偏「补底层」的专题,适合已经在一线写 Java 后端、想减少对搜索引擎依赖的人。如果你当前的目标是快速上手做项目,它帮不上太多忙;如果你已经被框架的「黑盒感」困扰了一段时间,它值得花时间跟完。

课程目录

课程目录210 集
  • 2025-10-25 06:
  • 45 上传 ├─第01阶段:第01季springboot源码之核心原理 │   01springboot源码分析-课程内容介绍.mp4
  • │   02springboot源码分析-环境要求讲解.mp4
  • │   03springboot源码之核心原理-三个基本原理.mp4
  • │   04Springboot源码之核心原理-画图讲解.mp4
  • │   05Springboot源码之核心原理-环境搭建.mp4
  • │   06starter的maven引入和自动注解.mp4
  • │   07核心原理-内置tomcat讲解.mp4
  • │   08springboot底层设计原理的总结.mp4
  • │ ├─第02阶段:第02季springboot源码之初始化器实现 │   01Springboot源码第二季课程介绍.mp4
  • │   02为何要自定义初始化器.mp4
  • │   03springboot的初始化器的源码分析.mp4
  • │   04自定义初始化器实现方式1.mp4
  • │   05自定义初始化器实现方法2.mp4
  • │   06自定义初始化3.mp4
  • │   07springboot源码初始化器_回顾.mp4
  • │ ├─第03阶段:第03季SpringBoot2.x系统监听器 │   01-基础知识resolvableType使用.mp4
  • │   02-通过resolvabletype获取字段属性.mp4
  • │   03-监听器的现实中的案例.mp4
  • │   04-广播设计模板的代码实现.mp4
  • │   05-通过注解改造监听器方式.mp4
  • │   06-springboot源码监听器-源码分析.mp4
  • │   07-思维导图加断点方式分析源码.mp4
  • │   08-isAssignableFrom.mp4
  • │   09-三种创建监听器的方式.mp4
  • │   10-第四种方式创建监听器.mp4
  • │ ├─第04阶段:第04季springboot的bean初始化 │   01springboot源码第4季-课程内容介绍.mp4
  • │   02-ioc思想介绍.mp4
  • │   03-ioc的无参构造xml配置.mp4
  • │   04-ioc的有参注入.mp4
  • │   05-ioc的静态方式的xml配置和加载过程.mp4
  • │   06-component方式注解bean.mp4
  • │   07-bean方式配置bean.mp4
  • │   08-factorybean方式.mp4
  • │   09-使用动态注入分析.mp4
  • │   10-动态注册beanDefinition接口.mp4
  • │   11-prepareRefresh.mp4
  • │   12-obtainFreshbeanFactory.mp4
  • │   13-prepareBeanFactory.mp4
  • │   14-postProcessBeanFactory.mp4
  • │   15-SpringIoC源码解析1.mp4
  • │   16-SpringIoC源码解析2.mp4
  • │   17-SpringIoC源码解析3.mp4
  • │   18-refresh其它方法的讲解.mp4
  • │   19-Bean创建初始化分析.mp4
  • │   20-bean的最后创建分析.mp4
  • │   21-画图讲解bean初始化流程.mp4
  • │ ├─第05阶段:第05季springboot的banner原理解析 │   01-banner原理分析效果演示.mp4
  • │   02-banner原理分析banner的设置关闭方式.mp4
  • │   03-banner源码默认输出原理.mp4
  • │   04-banner源码原理文本输出分析.mp4
  • │   05-banner源码图片的输出原理.mp4
  • │   06-banner源码代码跟踪.mp4
  • │ ├─第06阶段:第06季springboot的自动加载器 │   01-124个自动注解什么时候加载.mp4
  • │   02-自动引入的原理.mp4
  • │   03-自定义stater.mp4
  • │   04-验证自定义starter.mp4
  • │   05-配置文件提示功能的方法.mp4
  • │   06-源码分析加载器-内容回顾.mp4
  • │ ├─第07阶段:第07季springboot的ConfigurationProperties原理讲解 │   01-配置文件加载的内容介绍.mp4
  • │   02-配置文件yaml的介绍.mp4
  • │   03-配置文件yaml的基本语法.mp4
  • │   04-yaml配置文件值的获取.mp4
  • │   05-源码分析.mp4
  • │   06-源码分析补充.mp4
  • │   07-原理画图分析.mp4
  • │ ├─第08阶段:第08季springboot的value注解的应用和源码分析 │   01-springboot的@value的使用案例.mp4
  • │   02-springboot的@value源码分析.mp4
  • │   03-springboot的@value画图讲解原理.mp4
  • │   04-cofiguationProperti对比.mp4
  • │ ├─第09阶段:第09季SpringBoot的注解高级配置方式 │   01-配置文件的引入外部的方法.mp4
  • │   02-高级配置文件importResource使用.mp4
  • │   03-高级配置使用bean注解添加组件.mp4
  • │   04-配置-profile多环境的支持.mp4
  • │   05-配置文件的加载位置.mp4
  • │   06-配置-外部配置加载顺序.mp4
  • │ ├─第10阶段:第10季springboot基础原理bean的引入原理 │   01spring5的核心bean初始化课程介绍.mp4
  • │   02spring5的体系架构介绍.mp4
  • │   03spring5通过xml方式创建bean实例.mp4
  • │   04给xml创建bean赋值并且一些注意事项.mp4
  • │   05通过注解方式创建bean并且讲解t配置文件.mp4
  • │   06包扫描器@componentScan用法.mp4
  • │   07spring5打印bean所有信息的方法.mp4
  • │   08spring5包扫描器的包含和排除功能.mp4
  • │   09spring5验证bean默认情况是单实例.mp4
  • │   10spring5的工厂模式.mp4
  • │   11spring5的注解高级用法课程总结.mp4
  • │ ├─第11阶段:第11季springboot基础原理注解的核心原理 │   01getBeanNamesForType讲解.mp4
  • │   02spring5的conditional的注解详解.mp4
  • │   03spring5的import注解详解.mp4
  • │   04importSelector的用法.mp4
  • │   05对外提供动态注册beanDefinition接口.mp4
  • │   06spring5的factorybean的使用.mp4
  • │ ├─第12阶段:第12季springboot基础原理spring5源码解析config类的加载过程 │   01spring5的config配置类的加载过程.mp4
  • │   02beanfactory和factorybean.mp4
  • │   03BeanFactory和应用上下文.mp4
  • │   04@configuration的加载源码分析.mp4
  • │   05@configuration的源码断点跟踪.mp4
  • │ ├─第13阶段:第13季springboot基础原理spring5的生命周期源码分析 │   01spring5中spring的生命周期介绍.mp4
  • │   02spring5的构造方法初始化过程源码跟踪.mp4
  • │   03spring5自定义init和detory方法.mp4
  • │   04为bean提供了初始化方法的方式.mp4
  • │   05为bean提供了初始化方法的方式.mp4
  • │   06spring5生命周期断点演示.mp4
  • │ ├─第14阶段:第14季springboot基础原理spring5的属性赋值原理 │   1spring5的属性赋值@value使用.mp4
  • │   2propertysource加载外部文件读取.mp4
  • │   3spring5的autowired5种自动装配方式.mp4
  • │   4spring5的autowired的位置讲解.mp4
  • │   5spring5自定义组件xxxaware的引入功能.mp4
  • │ ├─第15阶段:第15季springboot基础原理AOP注解分析 │   01spring5的aop的引入.mp4
  • │   02spring5的aop切片的案例编写.mp4
  • │   03spring的aop的加深用法.mp4
  • │   04spring5的aop责任链的设计模式案例实现.mp4
  • │   05aop源码分析注入xxxAware类.mp4
  • │   06spring5的aop源码分析类图关系.mp4
  • │   07aop创建beanpostprocess对象.mp4
  • │   08aop源码分析对每个bean进行拦截处理.mp4
  • │   09aop源码分析对通知的代理方法创建.mp4
  • │   10spring5的aop拦截器原理说明.mp4
  • │   11spring5的aop总结.mp4
  • │ ├─第16阶段:第16季springboot基础原理事务管理源码分析 │   01spring的aop的画图讲解原理.mp4
  • │   02springboot事务的表的自定和创建.mp4
  • │   03springboot创建工程项目.mp4
  • │   04springboot写一个mybatis整合项目.mp4
  • │   05springboot演示事务的小demo.mp4
  • │   06springboot手写事务管理器.mp4
  • │   07springboot改写事务管理业务类.mp4
  • │   08spring5的事务管理操作.mp4
  • │   09springboot的事务总结.mp4
  • │ ├─第17阶段:第17季springboot声明事务底层源码分析 │   01spring事务源码分析课程介绍.mp4
  • │   02spring案例配置类编写.mp4
  • │   03spring的环境搭建完毕和验证.mp4
  • │   04spring的事务管理的开启三步骤.mp4
  • │   05spring的事务源码介绍.mp4
  • │   06spring的事务源码跟踪演示.mp4
  • │ ├─第18阶段:第18季springboot基础原理循环依赖 │   01spring循环依赖的概念介绍.mp4
  • │   02spring循环依赖的代码演示.mp4
  • │   03spring为何在单实例状态下不会产生死循环.mp4
  • │   04如何解决Spring的循环依赖问题.mp4
  • │   05spring创建对象3个缓存的作用.mp4
  • │   06spring循环依赖的代码跟踪1.mp4
  • │   07spring循环依赖代码跟踪2.mp4
  • │   08spring循环依赖面试题解答.mp4
  • │ ├─第19阶段:第19季springboot的web原理篇 │   01springboot的springmvc介绍.mp4
  • │   02使用spring3.0的注解写个web案例.mp4
  • │   03初始化的工作原理.mp4
  • │   04servletContext注册三大组件.mp4
  • │   05idea搭建springmvc基于注解的方法.mp4
  • │   06idea实现注解方式的springmvc案例.mp4
  • │ ├─第20阶段:第20季springboot的异步源码分析 │   01底层原理基于springmvc注解.mp4
  • │   02基于springmvc注解开启视图层.mp4
  • │   03面试题-拦截器与过滤器区别.mp4
  • │   04通过注解实现计时器的拦截器.mp4
  • │   05servlet同步线程的案例演示.mp4
  • │   06springmvc的异步请求处理.mp4
  • │   07springmvc的异常处理企业常用方式.mp4
  • │ ├─第21阶段:第21季springmvc的源码分析 │   01servlet原理的介绍.mp4
  • │   02Springmvc的核心类源码分析.mp4
  • │   03springmvc的源码分析拦截器执行的时机.mp4
  • │   04源码分析流程总结.mp4
  • │   05springmvc的初始化流程.mp4
  • │ ├─第22阶段:第22季SpringBoot2.x属性配置之aware │   01springboot属性配置的课程介绍.mp4
  • │   02springboot的属性赋值优先级代码演示对比.mp4
  • │   03实现aware接口获取spring容器的功能资源.mp4
  • │   04总结springboot中aware的作用.mp4
  • │ ├─第23阶段:第23季SpringBoot2.x源码分析Properties源码跟踪 │   01Environment对象如何填充集合.mp4
  • │   02Properties的加载流程.mp4
  • │   03手画Profile的流程图.mp4
  • │   04对properties源码分析流程一个详细补充.mp4
  • │ ├─第24阶段:第24季SpringBoot2.x源码分析启动加载器源码分析 │   01springboot启动加载器的概述.mp4
  • │   02springboot的启动加载器俩个实现的比较.mp4
  • │   03springboot的启动加载执行顺序方法.mp4
  • │   04springboot启动加载器源码分析.mp4
  • │   05启动加载器画图讲解实现过程.mp4
  • │ ├─第25阶段:第25季Mybatis源码分析之SqlSessionFactoryBuilder │   01Mybatis源码分析总体介绍.mp4
  • │   02mybatis的介绍以及orm的整体思想.mp4
  • │   03mybatis数据的创建过程.mp4
  • │   04mybatis的环境搭建过程.mp4
  • │   05mybatis操作数据库演示.mp4
  • │   06mybatis的执行流程.mp4
  • │   07mybatis对输入流的封装.mp4
  • │   08把xml配置转换config类.mp4
  • │   09源码分析解析mapper文件.mp4
  • │   10源码分析总结.mp4
  • │ ├─第26阶段:第26季Mybatis源码分析Mapper原理源码分析 │   01mybatis的mapper操作.mp4
  • │   02mybatis的核心原理画图讲解.mp4
  • │   03mybatis的sqlsession源码分析.mp4
  • │   04mybatis执行doquery方法.mp4
  • │   05mybatis的数据库和java文件的映射过程.mp4
  • │   06mybatis的sqlsession源码分析整理.mp4
  • │   07mybatis获取动态代理流程.mp4
  • │   08mybatis的sql语句执行的一个分析.mp4
  • │   09mybatis面试题谈一下mybatis的架构.mp4
  • │   10面试题简述mybatis的流程.mp4
  • │ ├─第27阶段:第27季Mybatis源码分析之一级缓存】 │   01getMapper和selectone的关系.mp4
  • │   02mybatis源码分析一级二级缓存画图讲解.mp4
  • │   03mybatis的案例验证和更新清除缓存.mp4
  • │   04mybatis的一级缓存源码分析.mp4
  • │   05mybatis的常用Executor.mp4
  • │   06mybatis的集群数据出现脏数据.mp4
  • │ ├─第28阶段:第28季Mybatis源码分析二级缓存 │   01mybatis源码分析二级缓存原理.mp4
  • │   02mybatis源码分析一级缓存代码跟踪回顾.mp4
  • │   03mybatis禁止一级缓存的4种方式.mp4
  • │   04mybatis二级缓存原理图.mp4
  • │   05mybatis缓存工具redis的安装和使用过程.mp4
  • │   06mybatis自定义redis的二级缓存实现类.mp4
  • │   07mybatis的二级缓存源码分析.mp4
  • │   08如果不关闭session为何俩次都需要查找数据库.mp4
  • │   09同一个session的二次缓存实现.mp4
  • │   10springBoot和Mybatis的二级缓存整合案例和源码分析.mp4
  • │ └─源码文档资料.zip