整体结构介绍
在Servlet的继承结构中一共有5个类,GenericServlet和HttpServlet在java中,剩下三个类HttpServletBean、FrameworkServlet和DispatcherServlet是SpringMVC中的。
后边三个类直接实现三个接口:EnvironmentCapable、EnvironmentAware和ApplicationContextAware。XXXAware在spring里表示对XXX可以感知,通俗点讲就是:如果在某个类里面想要使用spring的一些东西,就可以通过实现XXXWare接口告诉spring,spring看到就会给你送过来,而接收的方式是通过实现接口唯一的方法set-XXX。EnvironmentCapable,顾名思义,就是具有Environment的能力,也就是可以提供Environment,所以EnvironmentCapable唯一的方法是Environment getEnvironment(),用于实现EnvironmentCapable接口的类,就是告诉spring它可以提供Environment,当spring需要Environment的时候就会跟它要。
HttpServletBean
初始化
在HttpServletBean的init中,首先将Servlet中配置的参数使用BeanWrapper设置到DispatcherServlet的相关属性,然后调用模板方法initServletBean,子类就通过这个方法初始化。
使用
HttpServlet主要参与了创建工作,并没有涉及请求的处理。
FrameworkServlet
初始化
入口方法是initServletBean,核心代码:
核心代码只有两句话:一句话用于初始化WebApplicationContext,另一句