![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringMVC
文章平均质量分 83
markix
什么问题,什么结果,预期结果?
展开
-
springmvc 返回 null 不执行 @ControllerAdvice
项目中出现一种情况:当 Controller 方法返回 null 时,前端收到的请求响应体时空的。 通过debug发现,Controller 返回后没有进入预期的 @ControllerAdvice 的逻辑(@ControllerAdvice 定义了项目全局的响应结构)一顿源码调试,Controller 返回后,处理逻辑在这:org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod#invokeA原创 2022-03-11 00:11:20 · 671 阅读 · 0 评论 -
SpringMVC源码剖析(五) - 消息转换器HttpMessageConverter
原文链接:https://my.oschina.net/lichhao/blog/172562概述在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换,底层这种灵活的消息转换机制,就是Spring3.x中新引入的HttpMessageConverter即消息转换器机制。Http请求的抽象还是回到请求-响应,也就是解析请求体,然后返回响应报文这个最基本的Http请求过程中来。我们知道,在servlet标准中,可以.转载 2021-05-21 01:23:37 · 222 阅读 · 0 评论 -
SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现
原文链接:https://my.oschina.net/lichhao/blog/104943SpringMVC完成初始化流程之后,就进入Servlet标准生命周期的第二个阶段,即“service”阶段。在“service”阶段中,每一次Http请求到来,容器都会启动一个请求线程,通过service()方法,委派到doGet()或者doPost()这些方法,完成Http请求的处理。在初始化流程中,SpringMVC巧妙的运用依赖注入读取参数,并最终建立一个与容器上下文相关联的Spring子上下文。这.转载 2021-05-21 01:16:45 · 228 阅读 · 0 评论 -
SpringMVC源码剖析(三)- DispatcherServlet的初始化流程
原文链接:https://my.oschina.net/lichhao/blog/102315在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Servlet类。除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的页面。为了更好的理.转载 2021-05-21 01:09:59 · 156 阅读 · 0 评论 -
SpringMVC源码剖析(二)- DispatcherServlet的前世今生
原文链接:https://my.oschina.net/lichhao/blog/100138上一篇文章《SpringMVC源码剖析(一)- 从抽象和接口说起》中,我介绍了一次典型的SpringMVC请求处理过程中,相继粉墨登场的各种核心类和接口。我刻意忽略了源码中的处理细节,只列出最简单的类甚至是接口类,目的就是让大家先从最高层次的抽象意义上来审视SpringMVC这个框架;我也刻意将SpringMVC和Struts2做对比,目的是让大家看到,SpringMVC究竟吸取了Sturts2设计思想中的哪.转载 2021-05-21 00:49:03 · 73 阅读 · 0 评论 -
SpringMVC源码剖析(一)- 从抽象和接口说起
原文链接:SpringMVC源码剖析(一)- 从抽象和接口说起SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的面纱,本文的代码,都是基于Spring的 3.1.3RELEASE版本。任何一个框架,都有自己特定的适用领域,框架的设计和实现,必定是为了应.转载 2021-05-21 00:35:03 · 142 阅读 · 0 评论