使用SpringMVC如何启动初始化-创新互联

今天就跟大家聊聊有关使用Spring MVC如何启动初始化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

为鲁山等地区用户提供了全套网页设计制作服务,及鲁山网站建设行业解决方案。主营业务为网站制作、网站建设、鲁山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Web容器初始化过程

web容器初始化的过程,其官方文档给出了这样的描述:

  1. Instantiate an instance of each event listener identified by a element in the deployment descriptor.For instantiated listener instances that implement ServletContextListener, call the contextInitialized() method.

  2. Instantiate an instance of each filter identified by a element in the deployment descriptor and call each filter instance's init() method.

  3. Instantiate an instance of each servlet identified by a element that includes a element in the order defined by the load-on-startup element values, and call each servlet instance's init() method.

其初始化的过程实际如下:

使用Spring MVC如何启动初始化

SpringMVC 的 web.xml配置

web.xml 配置代码:

 
 
 
  
  contextConfigLocation 
  classpath:applicationContext.xml 
  
 
  
  org.springframework.web.context.ContextLoaderListener 
  
 
 
  
  mvc-dispatcher 
   
   org.springframework.web.servlet.DispatcherServlet 
   
  1 
  
                                   
  
  mvc-dispatcher 
  / 
  
 
  • 标签中定义了spring容器加载器

  • 标签中定义了spring前端控制器

在 Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener来处理。在ServletContextListener接口中定义了处理ServletContextEvent 事件的两个方法contextInitialized()contextDestroyed()

ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置了这个监听器,启动容器时,就会默认执行它实现的方法。由于在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。

DispatchServlet初始化

在SpringMVC架构中,DispatchServlet负责请求分发,起到控制器的作用。下面详细来解释说明:

使用Spring MVC如何启动初始化

  • DispatchServlet名如其义,它的本质上是一个Servlet,子类不断的对HttpServlet父类进行方法扩展

  • HttpServlet有两大核心方法:init()和service()方法。HttpServletBean重写了init()方法,在这部分,我们可以看到其实现思路:公共的部分统一来实现,变化的部分统一来抽象,交给其子类来实现,故用了abstract class来修饰类名。此外,HttpServletBean提供了一个HttpServlet的抽象实现,使的Servlet不再关心init-param部分的赋值,让servlet更关注于自身Bean初始化的实现

  • FrameworkServlet提供了整合web javabean和spring application context的整合方案。在源码中可以看到通过执行initWebApplicationContext()方法和initFrameworkServlet()方法实现

  • DispatchServlet是HTTP请求的中央调度处理器,它将web请求转发给controller层处理,它提供了敏捷的映射和异常处理机制,DispatchServlet转发请求的核心代码在doService()方法中实现

DispatchServlet类和ContextLoaderListener类的关系图:

使用Spring MVC如何启动初始化

用ContextLoaderListener初始化上下文,接着使用DispatchServlet来初始化WebMVC的上下文

看完上述内容,你们对使用Spring MVC如何启动初始化有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


本文标题:使用SpringMVC如何启动初始化-创新互联
分享网址:http://scyanting.com/article/cogjeh.html