spring源码系列
文章平均质量分 91
分析spring源码
mhn910
这个作者很懒,什么都没留下…
展开
-
一. springmvc源码之启动流程
springmvc源码之启动流程一. 说明源码基于Springboot2.2.1分析,并且围绕DispatchServlet相关进行分析,其余关于spring的未做探讨。参考资料:《看透 Spring mvc:源代码分析与实践》韩路彪二. 启动流程2.1 综述 SpringMvc的核心类是DispatchServlet,可以说web应用的整个流程都是围绕DispatchServlet展开的。而springmvc又是依赖于spring 的一个子容器,spring为springmvc提供了便捷的对原创 2021-06-18 18:17:01 · 398 阅读 · 0 评论 -
二. spingmvc之整体处理流程
spingmvc之整体处理流程一. 概述springmvc对请求的处理主要是围绕DispatchServlet展开的。一个请求进来以后,首先经过tomcat的一系列处理,然后根据不同的请求类型,servlet不同的方法,例如get请求调用doGet()。springmvc在处理该请求的过程中,先找到处理该请求的Handler,即我们编写的业务方法;接着找到调用该Handler的HandlerAdapter;然后执行handler;接着利用ViewResolver对视图进行解析,最后封装成respons原创 2021-06-18 18:20:50 · 117 阅读 · 0 评论 -
三. springmvc之HandlerMapping
springmvc之HandlerMapping一 概述HandlerMapping的作用是根据request找到对应的处理器Handler@NullableHandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;二. 源码分析HandlerMapping家族成员如下所示:通常我们使用的是RequestMappingHandlerMapping接下来分析下整个家族的实现方式,另外一条继承线原创 2021-06-18 18:21:27 · 316 阅读 · 0 评论 -
四. springmvc之HandlerAdapter
springmvc之HandlerAdapter一. 概述 前面HandlerMapping的作用是根据request找到Handler。通过分析我们也知道Handler可能有很多种,我们自定义的类,方法,还有springmvc给我们内置的一些。每种Handler的调用方式都不尽相同,因此就需要HandlerAdapter。 顾名思义,HandlerAdapter是一种适配器,对于某种类型的Handler,都有一种对应的Adapter,用来完成对Handler的调用。// Deter原创 2021-06-18 18:22:35 · 1754 阅读 · 0 评论 -
五. springmvc之ViewResolver
springmvc之ViewResolver一. 概述 ViewResolver是根据视图名和Locale解析出视图。在传统的web项目中,jsp,ftl等页面的渲染生成都是由ViewResolver来完成的。但是随着前后端分离项目的流行,该组件的使用已经越来越少。 本文主要分析下ViewResolver的原理及执行流程,纪念一下渐渐退出历史舞台的组件。二. 源码分析ViewResolver在DispatchServlet中的使用见如下代码:// Did the handler return原创 2021-06-18 18:23:50 · 621 阅读 · 0 评论 -
六. springmvc之RequestToViewNameTranslator
springmvc之RequestToViewNameTranslator一. 概述RequestToViewNameTranslator可以在处理器返回的view为空时使用它根据request获取viewName。这个组件的实现非常简单,只有一个实现类DefaultRequestToViewNameTranslator这个组件不是很常用,这里简单分析下二. 源码分析2.1 在DispatchServlet中的体现在DispatchServlet中,如下的方法使用到了这个组件applyDefa原创 2021-06-18 18:24:25 · 334 阅读 · 0 评论 -
七. springmvc之HandlerExceptionResolver
springmvc之HandlerExceptionResolver一. 概述HandlerExceptionResolver用于解析请求处理过程中所产生的异常。public interface HandlerExceptionResolver { @Nullable ModelAndView resolveException( HttpServletRequest request, HttpServletResponse response, @Nullable Object handle原创 2021-06-18 18:24:54 · 2069 阅读 · 1 评论 -
八. springmvc之MultipartResolver
springmvc之MultipartResolver一. 概述上传文件的组件,主要分为以下两种方式:StandardServletMultipartResolver和CommonsMultipartResolver,前者采用Servlet3.0标准的上传方式,后者则使用了Apache的commons-fileupload二. 源码分析2.1 MultipartResolverboolean isMultipart(HttpServletRequest request);MultipartH原创 2021-06-22 19:57:30 · 895 阅读 · 0 评论 -
九. springmvc之其他组件
springmvc之其他组件一. LocaleResolverLocaleResolver的作用是使用request解析出Locale。主要是配合视图渲染来使用的,在DispatchServlet中有如下的代码protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception { // Determine locale for reques原创 2021-06-22 19:58:05 · 272 阅读 · 0 评论 -
springmvc之编码问题(只看这一篇就足够了)
分析基于springboot 2.2.1,其他版本源码可能略有区别编码问题在编程中我们经常遇到中文乱码问题,主要分为以下几种:返回一个页面返回一个string类型且方法注释了@ResponseBody注解返回一个json数据且方法注释了@ResponseBody注解下面依次看看每种情况1.1 返回页面乱码这种情况在springboot中已经看不到了,因为springboot已经帮我们做了编码的自动配置为utf-8首先看看正常页面编码是如何设置的:在HttpEncodingAuto.原创 2021-06-22 16:21:48 · 496 阅读 · 0 评论