springMVC源码分析--容器初始化(二)DispatcherServlet

转载 https://blog.csdn.net/qq924862077/article/details/52809312

springMVC作为spring项目中的子项目,其可以和spring web容器很好的兼容。其实现机制就是springMVC也会自己初始化一
个IOC容器,然后将spring web的IOC容器作为父容器,这样就可以使用父容器中注入的bean了,由于是向上继承的,所以
父容器无法使用子容器注入的Bean。

接下来我们通过一步一步分析springMVC的IOC容器的初始化过程。
使用springMVC首先需要在web.xml中配置springMVC相关的配置,配置如下,springMVC的核心就是DispatcherServlet了。

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:springmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>    
</servlet

所以在web容器启动时会首先执行DispatcherServlet,其实质也是一个HttpServlet,其继承关系如下:

                        

如上图中,我们可以看到DispatcherServlet的体系结构,既然其有父类,所以很多初始化的操作就可能放到父类中完成,既然DispatcherServlet是一个Servlet,那么它就会有如下生命周期:

1,初始化阶段  调用init()方法。Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
2,响应客户请求阶段  调用service()方法
3,终止阶段  调用destroy()方法

springMVC的完整生命周期如下,接下来我们就按照这个生命周期对springMVC的整个体系架构的源码进行分析

如上图中,我们可以看到DispatcherServlet的体系结构,既然其有父类,所以很多初始化的操作就可能放到父类中完成,既然DispatcherServlet是一个Servlet,那么它就会有如下生命周期:

1,初始化阶段  调用init()方法。Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
2,响应客户请求阶段  调用service()方法
3,终止阶段  调用destroy()方法

springMVC的完整生命周期如下,接下来我们就按照这个生命周期对springMVC的整个体系架构的源码进行分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值