springboot类型参数解析图

2022-09-26 17:45:23 浏览数 (1)

SpringBoot类型参数解析

1. 类型参数解析

如在controller中的方法,DispatcherServlet如何根据请求找到对应的handler以及如何将request的参数解析到方法的参数中。

  1. request到达DispatcherServlet,通过getHandler找到能够处理该请求的控制器,并放回能够处理请求的方法
  2. 找到可以处理该请求的Adpater(如可以处理@RequestMapping.)
  3. 判断处理方法的每一个参数,根据注解类型和参数类型是否匹配判断是否可以处理,若可以处理则把处理器以及对应的注解,参数类型缓存起来。
  4. 判断完没一个参数后,开始处理,根据前面的缓存直接每个参数找到对应的参数解析器,调用参数解析器的处理方法将request中的数据载入到方法参数中。

大概逻辑图

2. 返回值解析

控制器返回一个class类型,通过@responseBody就能自动解析为json返回到前端,原理逻辑图:

0 人点赞