• HandlerAdapter具有什么功能呢?


    转自:

    HandlerAdapter具有什么功能呢?

    下文笔者将讲述HandlerAdapter的功能简介说明,如下所示:

    HandlerAdapter的功能

    HandlerAdapter:是一个处理器适配器
    Spring MVC中借助HandlerAdapter来实际调用处理函数


    DispatcherServlte会根据配置文件信息注册HandlerAdapter

    DispatcherServlte会获取DispatcherServlte.properties文件
    此文件中配置了三种HandlerAdapter分别为:
    HttpRequestHandlerAdapter
    SimpleControllerHandlerAdapter
    AnnotationMethodHandlerAdapter

    DispatcherServlte会将这三个HandlerAdapter对象保存到handlerAdapters这个集合属性中
    当保存到相应的集合中时,则此时完成了HandlerAdapter的注册操作 
    

    DispatcherServlte通过handlerMapping传过来的controller与注册的HandlerAdapter 进行匹配

    当获取HandlerAdapter是支持该controller类型的
    则调用HandlerAdapter的handle方法,handle方法中使用反射的方式运行Controller中的方法获取一个ModelAndView
    例:
       SimpleControllerHandlerAdapter是支持并实现了controller接口的控制器
    当自己写的控制器实现了controller接口,则SimpleControllerHandlerAdapter就会去执行自己写控制器中的具体方法来完成请求


    HandlerAdapter的功能总结如下

     
     HandlerAdapter定义了如何处理请求的策略
      请求url、请求Method和处理器的requestMapping定义
     最终确定使用处理类的哪个方法来处理请求
    并检查处理类相应处理方法的参数以及相关的Annotation配置
    确定如何转换需要的参数传入调用方法,并最终调用返回ModelAndView 
     
     DispatcherServlet中根据HandlerMapping找到对应的handler method后
      首先检查当前工程中注册的所有可用的handlerAdapter
      根据handlerAdapter中的supports方法找到可以使用的handlerAdapter 
    
     通过调用handlerAdapter中的handler方法来处理及准备handler method的参数及annotation(这就是spring mvc如何将request中的参数变成handle method中的输入参数的地方)
    最终调用实际的handler method。
  • 相关阅读:
    10道小学趣味数学题
    八数码问题
    【2023年11月第四版教材】软考高项极限冲刺篇笔记(2)
    python实操题二(含答案)
    TCMonodepth:Enforcing Temporal Consistency in Video Depth Estimation-论文阅读
    【电子通识】为什么高速信号传输要用差分
    一、摘要和简介
    C/C++语言100题练习计划 95——矩阵交换行(线性代数)
    华为网络工程师认证有了解的吗?
    LeetCode刷题---215. 数组中的第K个最大元素(快速选择)
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127799781