我们都知道DispatcherServlet是中央控制器,也叫前端控制器,在SpringMVC中,它是一个十分重要的核心分发器,那么我们来源码跟踪解析一下。
首先我们看看它的继承结构
看到了HttpServlet以及它的父类GenericServlet,我们知道我们可以自定义Servlet继承HttpServlet,关于这方面的知识,我其他博客有讲解,这里不再多说
实例化->初始化->使用->销毁
实例化:容器调用Servlet的构造器,创建一个Servlet对象;
初始化:实例化之后,容器会立即调用对象的init方法;
使用:调用servlet的service()方法处理客户端请求;
销毁:调用servelet的destroy()方法销毁。
初始化
DispatcherServlet的初始化由HttpServletBean的init()方法开始。
HttpServletBean 中的init()
我们来看看DispatcherServlet的父类FrameworkServlet,它是一个抽象类。
简明扼要,直接来看initServletBean
在initServletBean方法中对WebApplicationContext属性进行了初始化。
WebApplicationContext是Spring容器的上下文
WebApplicationContext接口继承了ApplicationContext接口
是BeanFactory接口的子接口。
initWebApplicationContext()
protected WebApplicationContext initWebApplicationContext() {
//获取根的上下文
WebApplicationContext rootContext =
WebApplicationContextUti