当前位置 博文首页 > L-Java:Spring MVC 初始化源码(4)—@RequestMapping注解的源码

    L-Java:Spring MVC 初始化源码(4)—@RequestMapping注解的源码

    作者:[db:作者] 时间:2021-07-08 18:58

    ??基于最新Spring 5.x,详细介绍了Spring MVC中的@RequestMapping注解解析的源码。

    ??我正在参与CSDN《新程序员》有奖征文,活动地址:https://marketing.csdn.net/p/52c37904f6e1b69dc392234fff425442。

    ??采用@RequestMapping注解以及使用@RequestMapping作为元注解的注解修饰方法来实现的Controller控制器将被解析为HandlerMethod类型的Handler处理器对象,该对象保存着URI路径到对应控制器方法的映射关系,后面请求的时候会根据路径找到Handler,然后拿到Handler对应的控制器方法直接执行,而无需再次解析。

    ??下面让我一起来看看基于@RequestMapping注解的Controller控制器的解析流程源码。下面的源码版本基于5.2.8.RELEASE

    Spring MVC源码 系列文章

    Spring MVC 初始化源码(1)—ContextLoaderListener与父上下文容器的初始化

    Spring MVC 初始化源码(2)—DispatcherServlet与子容器的初始化以及MVC组件的初始化【一万字】

    Spring MVC 初始化源码(3)—<mvc:annotation-driven >配置标签的源码解析

    Spring MVC 初始化源码(4)—@RequestMapping注解的源码解析

    Spring MVC 请求执行流程的源码深度解析【两万字】

    文章目录

    • Spring MVC源码 系列文章
    • 1 @RequestMapping注解解析入口
    • 2 getCandidateBeanNames获取候选beanName
    • 3 processCandidateBean处理候选bean
      • 3.1 isHandler是否是handler类
      • 3.2 detectHandlerMethods解析HandlerMethod
        • 3.2.1 getMappingForMethod获取RequestMappingInfo映射
          • 3.2.1.1 createRequestMappingInfo创建RequestMappingInfo
          • 3.2.1.2 combine合并属性
          • 3.2.1.3 pathPrefixes路径前缀
        • 3.2.2 registerHandlerMethod注册HandlerMethod
          • 3.2.2.1 MappingRegistry映射注册表
    • 4 总结
    cs