[专栏]Spring MVC 源码分析
pfnie
这个作者很懒,什么都没留下…
展开
-
SpringMVC源码剖析(一)- 从抽象和接口说起
SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的面纱,本文的代码,都是基于Spring的 3.1.3RELEASE版本。任何一个框架,都有自己原创 2016-05-19 13:13:44 · 751 阅读 · 0 评论 -
SpringMVC源码剖析(二)- DispatcherServlet的前世今生
上一篇文章《SpringMVC源码剖析(一)- 从抽象和接口说起》中,我介绍了一次典型的SpringMVC请求处理过程中,相继粉墨登场的各种核心类和接口。我刻意忽略了源码中的处理细节,只列出最简单的类甚至是接口类,目的就是让大家先从最高层次的抽象意义上来审视SpringMVC这个框架;我也刻意将SpringMVC和Struts2做对比,目的是让大家看到,SpringMVC究竟吸取了Sturts2设原创 2016-05-19 16:34:53 · 518 阅读 · 0 评论 -
SpringMVC源码剖析(三)- DispatcherServlet的初始化流程
在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Servlet类。除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的转载 2016-05-19 17:15:48 · 468 阅读 · 0 评论 -
SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现
SpringMVC完成初始化流程之后,就进入Servlet标准生命周期的第二个阶段,即“service”阶段。在“service”阶段中,每一次Http请求到来,容器都会启动一个请求线程,通过service()方法,委派到doGet()或者doPost()这些方法,完成Http请求的处理。在初始化流程中,SpringMVC巧妙的运用依赖注入读取参数,并最终建立一个与容器上下文相关联的Spr转载 2016-05-20 11:35:40 · 612 阅读 · 0 评论 -
SpringMVC源码剖析(五) - 消息转换器HttpMessageConverter
概述在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换,底层这种灵活的消息转换机制,就是Spring3.x中新引入的HttpMessageConverter即消息转换器机制。Http请求的抽象还是回到请求-响应,也就是解析请求体,然后返回响应报文这个最基本的Http请求过程中来。我们知道,在se转载 2016-05-20 13:44:17 · 431 阅读 · 0 评论 -
SpringMVC源码剖析(六)- HandlerInterceptor的来龙去脉
Spring MVC 中的Interceptor 拦截器的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆。类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。更准确的说,我更认为它更像Spring AOP里面的环绕通知,在我们调用处理器的前后进行处理。其实整个spring mvc的大致请求过程如下所示:那么Han原创 2016-08-27 08:38:13 · 862 阅读 · 0 评论 -
SpringMVC源码剖析(七)- HandlerExceptionResolver异常解析器家族揭秘
在Spring MVC中,所有用于处理在请求处理过程中抛出的异常,都要实现HandlerExceptionResolver接口。HandlerExceptionResolver是Spring MVC提供的非常好的通用异常处理工具,不过需要注意的是,它只能处理请求过程中抛出的异常,异常处理本身所抛出的异常和视图解析过程中抛出的异常它是不能处理的。AbstractHandlerExceptionR原创 2016-09-02 21:08:44 · 22490 阅读 · 0 评论