编程语言
首页 > 编程语言> > 六、springboot之映射原理(源码分析)

六、springboot之映射原理(源码分析)

作者:互联网

从上一节我们了解了什么是rest映射。那是什么让映射与方法结合到一起的呢?

1、步骤分析

​ 我们知道springBoot整合了springMVC所有的组件,在springMVC中,所有的组件控制都是DispatcherServlet,所以我们直接去DispatcherServlet中找寻与转发及handlerMapping相关。以下为流程图示例,你们可以一步步的跳转断点调试
在这里插入图片描述

2、源码分析

protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {
        HttpServletRequest processedRequest = request;
        HandlerExecutionChain mappedHandler = null;
        boolean multipartRequestParsed = false;

        WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);

        try {
            ModelAndView mv = null;
            Exception dispatchException = null;

            try {
                processedRequest = checkMultipart(request);
                multipartRequestParsed = (processedRequest != request);

                // step into 进入找到当前请求使用哪个Handler(Controller的方法)处理
                mappedHandler = getHandler(processedRequest);
                
                //HandlerMapping:处理器映射。/xxx->>xxxx

在这里插入图片描述

​ 所有的请求映射都在HandlerMapping中。
在这里插入图片描述

RequestMappingHandlerMapping:保存了所有@RequestMapping 和handler的映射规则。

SpringBoot自动配置欢迎页的 WelcomePageHandlerMapping 。访问 /能访问到index.html;

我们需要一些自定义的映射处理,我们也可以自己给容器中放HandlerMapping。自定义 HandlerMapping

标签:HandlerMapping,springboot,映射,request,自定义,源码,null,processedRequest
来源: https://blog.csdn.net/weixin_35798336/article/details/113039751