码农爱java
好记性不如烂笔头,记录技术点滴,保持热爱。come on!
展开
-
Spring MVC 之父子容器详解
Spring MVC 有父子容器,Spring Boot 整合了 Spring MVC,是否应该有父子容器,这也是面试中的一个常见问题,如果你回答是,肯可能就要回家等通知了,Spring Boot 是没有父子容器的概念的,这个在源码中可以看出来,Spring Boot 项目调用 SpringApplication#run 方法就可以启动项目,下面我们就来看下 SpringApplication#run 方法源码。欢迎提出建议及对错误的地方指出纠正。原创 2024-06-04 09:30:00 · 1906 阅读 · 0 评论 -
Spring MVC 源码分析之 DispatcherServlet#processDispatchResult方法
上文说了 DispatcherServlet#render 方法主要可以分为两步,分别是创建视图 View 和 解析渲染视图 view.render,创建 View 的步骤我们已经分析完了,我们来分析一下 view.render 方法,也就是 AbstractView#render 方法,该方法会将 Model、request、response 封装成成一个 Map 对象给后面的视图渲染使用,同时会对下载请求做一些处理,然后就开始进行视图渲染。欢迎提出建议及对错误的地方指出纠正。原创 2024-06-03 09:25:33 · 951 阅读 · 1 评论 -
Spring MVC 源码分析之 AbstractHandlerMethodAdapter#handle 方法
InvocableHandlerMethod#invokeForRequest 方法仅仅是解析了方法的参数值,然后调用了 InvocableHandlerMethod#doInvoke 方法,该方法通过桥接方法调用了具体的方法,也就是 Controller 中定义的方法。至此 AbstractHandlerMethodAdapter#handle 方法的调用链路源码分析完毕,这部分也是 Spring MVC 真正调用 Controller 中定义方法的一段源码,希望可以帮助到有需要的小伙伴们。原创 2024-06-01 10:30:00 · 1457 阅读 · 0 评论 -
Spring MVC 源码分析之 DispatcherServlet#getHandlerAdapter 方法
前面我们分析了 Spring MVC 的工作流程源码,其核心是 DispatcherServlet#doDispatch 方法,我们前面分析了获取 Handler 的方法 DispatcherServlet#getHandler 方法,本篇我们重点分析一下获取当前请求的适配器 HandlerAdapter 的实现原理,具体方法入口是 DispatcherServlet#getHandlerAdapter。** DispatcherServlet#getHandlerAdapter方法源码分析**原创 2024-05-31 09:55:26 · 1051 阅读 · 0 评论 -
Spring MVC 源码分析之 DispatcherServlet#getHandler 方法
本文简单分析了 Spring MVC 工作流程中获取 Handler 的实现,整个过程先通过 Request 请求的一些属性,从整个 HandlerMapping 中获取到具体的 Handler,然后和当前请求应该使用的拦截器一起,通过责任链模式构造出一个拦截器链,看似是从 HandlerMapping 中获取处理当前请求的 Handler,实则最后返回的是一个拦截器链,希望本篇的细节剖析可以帮助大家建立更深的映像。欢迎提出建议及对错误的地方指出纠正。原创 2024-05-30 11:15:30 · 1309 阅读 · 2 评论 -
Spring MVC 工作流程源码分析
我们知道 Servlet#service 方法的主要作用是接收客户端发送的 HTTP 请求,并根据请求的类型(GET、POST、PUT、DELETE等)将请求分发到相应的处理器(Controller)进行处理,处理器处理完请求后,将结果返回给 Servlet#service 方法,再由该方法返回给客户端,Servlet#service 方法是由 Spring DispatcherServlet 类实现的,它是整个Spring MVC 框架的核心组件之一。欢迎提出建议及对错误的地方指出纠正。原创 2024-05-29 09:30:00 · 1039 阅读 · 0 评论 -
Spring MVC 异常处理之 SQL 异常处理
做过业务项目开发的小伙伴都知道,开发总会避免不了各种各样的异常,为了不让每个业务繁琐的去处理异常,我们通常会去设置全局异常处理器来处理异常,本篇我们就分享如果使用全局异常处理器来处理异常。一个全局异常处理器看似简单,但是可能也存在漏洞,比如上面介绍的 SQL 异常的处理,SQL 异常的处理有一定的特殊性,因此分享给大家,希望帮助到有需要的小伙伴。没想到加了上述代码后,任然还是抛出了 SQL 语句,异常拦截无效,究竟是怎么回事呢?欢迎提出建议及对错误的地方指出纠正。原创 2024-05-28 09:30:00 · 556 阅读 · 0 评论 -
Spring MVC 初始化源码分析
前言:相信从事 Java 开发的小伙伴都使用用过 Spring MVC,同时我们知道 Spirng MVC 有 9 大组件,Spring MVC 的初始化其实就是对这些组件的初始化,前面我们分析了 Sping 的初始化,Spring 的初始化是Spring 在启动时候调用了 AbstractApplicationContext#refresh 方法完成初始化的,那 Sping MVC 又是什么时候完成初始化的?本篇我们将剖析一下 Spring MVC 的初始化过程。Spring MVC 9 大组件我们原创 2024-05-27 09:30:00 · 729 阅读 · 0 评论 -
详解 Spring MVC(Spring MVC 简介)
Spring MVC 是 Spring 框架提供的一个基于 MVC 模式的轻量级 Web 框架,是 Spring 为表示层开发提供的一整套完整的解决方案,Spring MVC 使用了 MVC 架构模式,将 Web 层职责解耦,基于请求驱动模型,简化了 Web 应用程序的开发过程。MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范,是一种架构设计模式,MVC 模式降低了视图和与业务逻辑的耦合。欢迎提出建议及对错误的地方指出纠正。原创 2024-05-25 10:30:00 · 1212 阅读 · 0 评论 -
SpringMVC Controller 层没有使用 @ResponseBody 注解引发的血案(api访问404)
很明显两次请求的路径不一样,第一次请求的路径是我们正常的路径:”/api/test-controller“,第二次请求的路径正是:“/api/成功”,很明显问题就出在第二请求路径上,代码中不存在这个请求路径,肯定要报错:404,为什么会有第二次请求呢?欢迎提出建议及对错误的地方指出纠正。原创 2024-04-21 10:30:00 · 710 阅读 · 0 评论