SpringBoot
文章平均质量分 82
Anton丶
前路不尽,心已明,行将远......
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
十四、SpringBoot原理——SpringBoot应用是怎么启动的?从创建容器到运行容器,逐行分析完整过程
SpringApplication.run()方法传入了主配置类,打上断点开始Debug启动step into 进入,首先,它 new 了一个class,传入了我们的主配置类直接进入 run 方法所以,接下来就是看这两步中到底干了什么?原创 2022-08-17 22:47:07 · 455 阅读 · 0 评论 -
十三、SpringBoot错误处理底层组件和异常处理流程分析
如果我们想自定义错误页面包含哪些数据,就定义 DefaultErrorAttributes如果发生错误,会以HTTP的状态码 作为视图页地址(viewName),找到真正的页面如果我们要 自定义错误页面html路径,还可以在配置文件定义 server.error.path=前边已经使用过了自定义一个异常:UserTooManyException模拟使用。...原创 2022-08-07 18:19:43 · 537 阅读 · 0 评论 -
十二、SpringBoot文件上传使用及流程分析【文件上传参数解析器】
文件上传解析器,从名字可以看出,它是用来解析 Servlet 方式上传的文件的。其实就是用工具类,判断我们的请求类型,是不是multipart,是就封装。下一步,判断我们的请求是不是文件上传请求,如果是,包装文件上传请求。在前边练习使用的时候,我们已经知道,关于文件上传的功能,被写在了。那怎么办呢,很简单,按照它的前缀格式,在配置文件修改它就可以了。他来了,他来了,接下来就是debug它的源码了。全部获取到了之后,就可以用了,来到我们的目标方法。进入,要执行目标方法,先获取请求参数的值。...原创 2022-08-06 17:20:17 · 1422 阅读 · 1 评论 -
十一、拦截器运行原理
目标方法执行完,来到 applyPostHandle 方法,step into 进去。执行完之后来到 processDispatchResult,说明一下,在讲原理之前,先来看一下拦截器是怎样使用的,比如我们现在要做登录检查。使用非常简单,接下来过一下它的执行流程,看看它底层是怎么实现的。然后接下来不在赘述中间的过程,直接让目标方法执行完。然后获取一个执行链,包括我们的处理器方法和拦截器。这就是拦截器的运行原理,还是比较容易理解的!所有拦截器都返回True,执行目标方法。继续,来到执行目标方法的前一步。..原创 2022-08-04 00:40:51 · 589 阅读 · 0 评论 -
十、视图解析原理与源码分析
方法执行完以后所有的东西就都在 ModelAndViewContainer 里边了,如果方法的参数是一个自定义类型对象(从请求参数中确定的),也会把他重新放在 ModelAndViewContainer。而且,就算你方法没有返回值,它也会给你默认一个跳转页,比如我们没有返回值,它就会拿到原生的request,查看当前的请求是什么,然后当做跳转的页面。方法,翻译的话就是处理派发结果,就是它来决定页面如何响应的。到现在为止,我们的页面还没有跳转,继续往下走,来到一个。方法加上断点,来分析一下页面的跳转过程。..原创 2022-08-03 00:14:53 · 261 阅读 · 0 评论 -
九、响应处理——内容协商底层原理
在前边学习返回值解析器时,里边使用了各种MessageConverter寻找哪个解析器可以处理我们的返回值,在寻找过程中,非常关键的一步就是内容协商,它通过遍历所有的MessageConverter一个一个寻找,接下来,就来看一下整个内容协商的流程。我们的请求标注了@ResponseBody,所以下一步就是找到能处理@ResponseBody的Handler,进过寻找,最终找到了。到这里,我们的内容协商环节就结束了,可以将Accept改成application/json调试练习。...原创 2022-07-30 15:49:18 · 2001 阅读 · 0 评论 -
八、响应处理——ReturnValueHandler匹配返回值处理器并处理返回值原理解析
浏览器默认会以请求头的方式告诉服务器他能接受什么样的内容类型,服务器最终根据自己自身的能力,决定服务器能生产出什么样内容类型的数据。方法传入了我们的返回值对象,还有返回值类型,接下来,就在这个方法里边,利用对应的返回值处理器,帮我们处理返回值。前边已经分析了请求处理中从映射到获取参数值等底层原理,接下来的几篇将学习一下响应处理的相关过程。在方法返回之前,我们的返回值处理器已经准备好了,只等我们返回值时拿这些处理器来处理。在前边处理请求参数的时候,有一个参数解析器,同样,在处理返回值时,也有一个。...原创 2022-07-27 23:44:56 · 789 阅读 · 0 评论 -
七、请求处理——Map、Model类型参数处理原理
首先,先说结论,当我们给参数位置写Map和Model时,Map,Model里边的数据会被放在。现在我们已经验证了结论是正确的,那里边的原理是什么呢?到这里,Map、Model类型参数处理原理的原理我们就搞清楚了,下一篇再见!上一篇分析过的这里就不在重复了,我们直接来带真正执行目标方法的地方。,我们目标方法中给map和model中加的数据就保存到了。首先,第一个参数是一个map,寻找解析它的解析器为。,经过和上边一样流程的调试,发现虽然它的解析器是。这样的方式拿到所有的参数,然后执行目标方法。...原创 2022-07-23 15:28:25 · 952 阅读 · 0 评论 -
六、请求处理—获取请求参数系列注解是怎样工作的?
经过一步一步的debug,我们终于搞明白那些参数注解是怎样获取值的,其实原理也很简单,就是找到自己匹配的参数解析器,解析出请求参数而且,多debug几遍也就轻车熟路了。这个关键方法,这个方法传入了request、response和我们的目标方法,它来帮我们执行目标方法,如下。这里是上一片看过的请求映射部分,找到了这个请求对应的handler,这里就不在赘述了,继续往下看。里边,继续往下走,跳过中间一些不重要的,直接来到真正执行目标方法的方法。参数解析器是一个接口,里边有两个方法,作用如下。...原创 2022-07-21 22:46:07 · 580 阅读 · 0 评论 -
五、请求处理—Rest映射是怎样实现的?
进入doService(request,response)方法发现,这是一个抽象方法,没有实现,所以就来到了它的子类DispatcherServlet,可以看到,最终是在DispatcherServlet中对doService()方法进行实现的。查找发现在HttpServletBean中没有doGet(),doPost()等,考虑在它的子类中重写了,再检查它的子类FrameworkServlet,在这个类中找到了这些方法。而且我们发现,不管是doGet()还是doPost()等,里边调用的都是。...原创 2022-07-18 23:42:55 · 209 阅读 · 0 评论 -
四、Web场景之静态资源配置原理
Web场景的静态资源配置原理原创 2022-07-14 00:00:19 · 339 阅读 · 0 评论 -
三、自动配置源码分析
springboot自动配置源码的分析原创 2022-07-12 00:08:20 · 412 阅读 · 0 评论 -
二、自动配置之底层注解
SpringBoot自动配置的底层注解原创 2022-07-10 16:45:04 · 206 阅读 · 0 评论 -
一、SpringBoot特性
SpringBoot特性:依赖管理、自动配置原创 2022-07-10 00:57:58 · 598 阅读 · 0 评论
分享