Springboot请求映射原理

1、重点关注DispatcherServlet.class(前端控制器)

Springboot请求映射原理_第1张图片

所有的请求在Springmvc中都经过DispatcherServlet.class进行处理

展开DispatcherServlet.class的机构树,

Springboot请求映射原理_第2张图片

 发现dispatcherServlet也是继承了httpServlet,那么只要事servlet就要重写doget、dopost方法,

Springboot请求映射原理_第3张图片

 父类中这两个方法都是调用processRequest方法,

Springboot请求映射原理_第4张图片

而 processRequest这个方法中重点是

Springboot请求映射原理_第5张图片

 抽象方法doService

进入dispatcherServlet中的doService方法中

Springboot请求映射原理_第6张图片

 重点调用了doDispatch方法

Springboot请求映射原理_第7张图片

前端页面发起一个请求,断点跟踪:

Springboot请求映射原理_第8张图片

 Springboot请求映射原理_第9张图片

 进入getHandler中springboot默认加载了五个handlerMapping,重点关注RequestMappingHandlerMapping

Springboot请求映射原理_第10张图片

 循环迭代器,发现RequestMappingHandlerMapping中直接加载了所有自己创建的请求路径

Springboot请求映射原理_第11张图片

Springboot请求映射原理_第12张图片

 最终找到controller 

扩展:

Springboot请求映射原理_第13张图片

 这五个handlerMappings是Springboot默认加载的

Springboot请求映射原理_第14张图片

 在WebMvcAutoConfiguration中RequestMappingHandlerMapping作为一个组件在Springboot启动的时候就作为一个组件注入到容器中了

你可能感兴趣的:(Springboot,spring,boot,后端,java)