• spring mvc源码跟踪流程


    一、spring mvc的流程:

    spi-Mete-info/接口 spring-web包里面META-INFO里面有个文件->SpringServletContainerInitializer - > AbstractDispatcherServletInitializer--onStartup->super.onStartup(servletContext)(监听器加载)
    ->registerDispatcherServlet(servletContext);(注册DispatcherServlet)

    监听器容器启动的时候执行默认方法自动加载spring的配置:
    ContextLoaderListener->contextInitialized()->initWebApplicationContext()->configureAndRefreshWebApplicationContext(spring容器的refresh执行)

    registerDispatcherServlet->createServletApplicationContext(mvc的配置)->createDispatcherServlet(创建中心servlet)->
    加载流程:
    DispatcherServlet是一个sevlet所以从父类的init方法进入:
    HttpServletBean->init->initServletBean->FrameworkServlet->initServletBean-> initWebApplicationContext->configureAndRefreshWebApplicationContext(执行spring容器刷新)


    ---- 到现在为止web中的监听器和DispatcherServlet全都可以加载了

    二、mvc配置说明 - 注解配置通过钩子函数调用加载的,方法的registry就是框架内部已经实例化的
    @EnableWebMvc - >DelegatingWebMvcConfiguration - >setConfigurers(WebMvcConfigurer接口的实现类注入进来)-> 父类WebMvcConfigurationSupport中所有的@bean注解方法->加载所有需要的类信息(handle)
    @EnableWebMvc注解加载的handler赋值给DispatcherServlet?FrameworkServlet.ContextRefreshListener(初始化完成默认进来)->onApplicationEvent->onRefresh->initStrategies()赋值完成

    三、映射关系的建立
    handleMapping启动的时候会加载->AbstractHandlerMethodMapping->afterPropertiesSet->processCandidateBean()->detectHandlerMethods(url和方法映射)->

    本文版权归原作者所有,不可商用,转载需要声明出处,否则保留追究法律责任的权利。如果文中有什么错误,欢迎指出。以免更多的人被误导。

  • 相关阅读:
    CF Hello 2020 E.New Year and Castle Construction
    HTML 简介
    グランドエスケープ
    CF 1244 C
    N皇后解法以及位运算优化
    CF
    动态规划TG.lv(1) (洛谷提高历练地)
    搜索Ex (洛谷提高历练地)
    数字图像处理——图像增强
    数字图像处理——图像的几何变换
  • 原文地址:https://www.cnblogs.com/lean-blog/p/13154250.html
Copyright © 2020-2023  润新知