![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springmvc源码
文章平均质量分 88
小雨的光
这个作者很懒,什么都没留下…
展开
-
SpringMVC源码--DispatcherServlet的加载和初始化
之前的文章介绍了Spring的初始化过程,Spring Web应用初始化依赖于Web容器的初始化,这在之前已经提到过了。那么初始化完成后,SpringMVC又是怎样发挥作用的呢?首先呢,Web容器初始化完成后会继续读取web.xml里的节点,我们知道DispatcherServlet是配置在web.xml中的,所以DispatcherServlet是由Web容器主动去加载的。那么,Disp...原创 2018-10-08 14:44:22 · 432 阅读 · 0 评论 -
SpringMVC源码--DispatcherServlet的工作原理
Servlet接口中很重要的三个方法分别是:init()方法负责初始化、destroy()方法负责销毁、service()方法负责处理请求。上一篇文章中我们提到,DispatcherServlet是一个具有唯一性的增强型Servlet容器。这篇文章主要是介绍DispatcherServlet的service()方法的,它是springmvc的核心。 老规矩,先从入口开始介绍。首先,...原创 2018-10-08 16:10:23 · 267 阅读 · 0 评论 -
SpringMVC源码--控制器Handler的注册
Spring容器初始化过程中,在调用prepareBeanFactory方法时,会调用所有实现了ApplicationContextAware接口的子类方法setApplicationContext()方法注入ApplicationContext对象。ApplicationObjectSupport类是ApplicationContextAware接口的子类,它的setApplicatio...原创 2018-10-08 17:27:04 · 584 阅读 · 0 评论 -
SpringMVC源码--控制器Handler的获得
在SpringMVC源码--DispatcherServlet的加载和初始化这篇文章中,我们在解读DispatcherServlet作用流程的时候,最后走到了DispatcherServlet类的doDispatch方法。源码如下:protected void doDispatch(HttpServletRequest request, HttpServletResponse resp...原创 2018-10-09 09:53:58 · 285 阅读 · 0 评论 -
SpringMVC源码--控制器Handler处理请求过程
DispatcherServlet类的doDispatch()方法中,真正去处理请求的关键步骤是: HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler()); ModelAndView mv = ha.handle(processedRequest, respo...原创 2018-10-09 10:43:05 · 532 阅读 · 0 评论 -
SpringMVC源码--WebApplicationInitializer(没有XML怎么在Web环境中启动Spring容器)
一直有好奇Spring是怎样做到零XML完成Spring在Web容器中启动的,这篇文章主要介绍WebApplicationInitializer接口。作为本篇的主角, WebApplicationInitializer接口位于org.springframework.web包下。很简单,只有一个方法:public interface WebApplicationInitializer ...原创 2018-10-16 10:48:34 · 1514 阅读 · 0 评论 -
SpringMVC源码--控制器Handler到底是个什么?
相信看了前边的文章,心理总是会有一些困惑。控制器Handler到底是个什么呢?首先我们可以确定的是它是一个Object对象。其次,它允许是String类型,允许是Spring Bean,允许是HandlerExecutionChain。到底是什么,取决于处于哪个阶段。 源码中第一次出现handler是在AbstractHandlerMapping类的getHandler()方...原创 2018-10-10 11:09:26 · 13223 阅读 · 4 评论 -
SpringMVC源码--拦截器实现机制
前言 如果框架源码看多了,就会发现一个问题,AOP的思想是存在于整个框架思想的。无论是Spring,还是SpringMVC,或者Mybatis、Hibernate。为什么呢?因为AOP的存在让我们更好地去控制程序走向,而且不用人为的编写大量重复性代码。比如一个简单的权限认证,我们肯定不希望在每个用户请求抵达服务器时都需要在业务功能中加入重复性的权限验证代码。无疑,对所有的请求进行拦截,...原创 2018-10-10 15:00:06 · 955 阅读 · 0 评论