别只会扫包注解,得弄清容器怎么被启动

很多人写SpringMVC应用,套路就是加个WebMvcConfigurer、贴上Controller注解、配个扫描包,跑起来就不管了。真问到Servlet3之后规范里怎么去掉web.xml、Spring怎么在容器启动时挂载根上下文和Web子上下文、两个父子容器之间Bean的可见范围怎么切,往往卡壳。这门课正是针对这种只会用不懂原理的缺口,把从Servlet3动态注册机制到注解式框架搭建整条链路拆开讲。它适合已经能独立写CRUD接口、想搞懂SpringMVC内部装配逻辑的Java后端,不适合连Servlet基础都没摸过的新手。建议先看Servlet3回顾和自定义初始化器两块,把动态添加组件的机制吃透,再进入源码分析和容器装配,最后用注解方式自己搭一遍。顺序不能倒,没看懂动态注册就直接抄注解配置,等于把原理课当调参手册用,丢了内核。

别光听课,得照着源码敲一遍并做对照

这门课的线索全是源码剖析和动手搭建,没有现成脚手架给你一键启动,所以练习方式很明确:边看边敲。第一遍跟着视频把自定义的初始化器写出来,手动注册Servlet、Filter、Listener三大组件,确认能在无web.xml环境下跑通;第二遍对照WebApplicationInitializer源码,在自己代码里打断点,看Spring回调链路怎么走到你写的配置类;第三遍分别搭建根容器和Web环境容器,往两个容器里放不同Bean,写个Controller验证父容器里的Service能否被注入、子容器里的Controller会不会被父容器扫描到。配套资料里的代码片段别直接复制,自己手敲一遍配置类,报错了再回头看视频里哪步漏了。重点练父子容器边界和组件注册顺序,这两块最容易踩坑。

学完得能脱开视频独立搭一套并答清几个关键问题

看完不是让你背流程,是让你能独立干这活:抛开模板工程,从空Maven项目起步,用纯注解方式搭出一套可运行的SpringMVC框架,自己定义容器初始化逻辑,注册好三大组件,配好父子容器,写个接口跑通请求链路。做到这点,才算把课内化。检验是否达标,试着回答几个问题:Servlet3规范里容器启动时怎么发现第三方框架的注册逻辑?SpringMVC的根容器和Web容器各自装什么Bean,为什么不合并成一个?WebApplicationInitializer被容器调用的时机和入口在哪?动态注册组件时如果顺序写错会出现什么问题?这几个问题答得含糊,说明还没吃透,回头把对应那几节再看一遍。别急着往下赶进度,原理课的价值在于每个节点都问个为什么,而不是刷完视频数。

课程目录

1 回顾Servlet3 (19:16)
2 自定义ServletContainerInitializer (19:49)
3 动态添加组件以及注册三大组件 (16:56)
4 WebApplicationInitializer源码分析 (27:20)
5 使用配置类加载根容器和Web环境Spring容器 (26:07)
6 使用注解方式搭建SpringMVC Web框架 (35:04)