SpringMVC DispatcherServlet组件实现解析

 更新时间:2020年03月06日 12:51:51   作者:FFStayF  
这篇文章主要介绍了SpringMVC DispatcherServlet组件实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

tomcat容器启动加载web.xml初始化springmvc相关策略组件

一、WebApplicationContext的层次结构

本来是想研究一下springMVC组件的,结果解决了以前的一个疑问。WebApplicationContext的层次结构

下面是从官网copy的一份web.xml

ContextLoaderListener:初始化一个Root WebApplicationContext:SpringIOC初始化一些中间services+datasouces的Bean

DispatcherServlet:初始化一个Servlet WebApplicationContext:SpringIOC初始化前端controllers+view resovlers+HandleMapping的Bean

父子关系:Servlet WebApplicationContext.setParent(Root WebApplicationContext);子容器找不到就去父容器找。

<web-app>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/app-context.xml</param-value>
  </context-param>

  <servlet>
    <servlet-name>app</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>app</servlet-name>
    <url-pattern>/app/*</url-pattern>
  </servlet-mapping>
</web-app>

二、DispatcherServlet的组件

servlet.init()时初始化SpringIOC容器外,还有初始化了一部分SpringMVC组件

/* org.springframework.web.servlet.DispatcherServlet#initStrategies 认识一下*/
  protected void initStrategies(ApplicationContext context) {
    initMultipartResolver(context);
    initLocaleResolver(context);
    initThemeResolver(context);
    initHandlerMappings(context);
    initHandlerAdapters(context);
    initHandlerExceptionResolvers(context);
    initRequestToViewNameTranslator(context);
    initViewResolvers(context);
    initFlashMapManager(context);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 通过实例解析POJO和JavaBean的区别

    通过实例解析POJO和JavaBean的区别

    这篇文章主要介绍了通过实例解析POJO和JavaBean的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java深入学习图形用户界面GUI之创建窗体

    Java深入学习图形用户界面GUI之创建窗体

    图形编程中,窗口是一个重要的概念,窗口其实是一个矩形框,应用程序可以使用其从而达到输出结果和接受用户输入的效果,学习了GUI就让我们用它来创建一个窗体
    2022-05-05
  • 解决使用json-lib包实现xml转json时空值被转为空中括号的问题

    解决使用json-lib包实现xml转json时空值被转为空中括号的问题

    网上能查到的xml转json的jar包大部分是net.sf.json-lib,但是JSON json =xmlSerializer.read(xml); 方法会出现将空值转化为[]的问题,下面为大家提供两种解决方法
    2018-03-03
  • Spring运行时动态注册bean的方法

    Spring运行时动态注册bean的方法

    这篇文章主要介绍了Spring运行时动态注册bean的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • SpringBoot实现文件断点续传功能详解

    SpringBoot实现文件断点续传功能详解

    在处理大文件传输或网络不稳定的情况下,文件断点续传功能显得尤为重要,本文将详细介绍如何使用Spring Boot实现文件的断点续传功能,需要的可以了解下
    2025-04-04
  • java实现入栈push和出栈pop过程

    java实现入栈push和出栈pop过程

    文章详细介绍了栈的概念、特点以及如何使用数组和链表实现栈,通过入栈(push)和出栈(pop)操作,展示了栈的数据处理过程,并提供了具体的代码实现
    2024-12-12
  • 完美解决Spring Boot前端的Access-Control-Allow-Origin跨域问题

    完美解决Spring Boot前端的Access-Control-Allow-Origin跨域问题

    这篇文章主要介绍了完美解决Spring Boot前端的Access-Control-Allow-Origin跨域问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 详解idea从git上拉取maven项目详细步骤

    详解idea从git上拉取maven项目详细步骤

    这篇文章主要介绍了详解idea从git上拉取maven项目详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Servlet实现多文件上传功能

    Servlet实现多文件上传功能

    这篇文章主要为大家详细介绍了Servlet实现文件上传功能,还可以实现Servlet多文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Java Unsafe 类的讲解

    Java Unsafe 类的讲解

    这篇文章主要给大家分享了 Java Unsafe 类的讲解,文章围绕Unsafe 类的相关资料展开详细内容,具有一定的参考价值需要的朋友可以参考一下
    2021-11-11

最新评论