SpringMvc体系源码分析
文章平均质量分 86
包括最后spring ioc/aop spring mvc的源码分析,不断学习才能使自己进步
菜鸡旭旭
java爱好者
展开
-
springmvc的最小化配置
SpringMVC的配置步骤1.在web.xml中配置Servlet2.创建SpringMVC的xml配置文件3.创建Controller和view1web.xml<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:原创 2017-12-31 15:57:06 · 224 阅读 · 0 评论 -
SpringMVC源码剖析(一)SpringMVC整体架构分析和创建
在此篇文章通过源码分析SpringMVC的创建过程原创 2018-01-02 10:43:24 · 509 阅读 · 0 评论 -
SpringMVC源码剖析(二)SpringMVC是如何处理请求的
本文大概从源码角度展示了SpringMVC是如何处理请求的,提供了大概的主要逻辑,但是并没有具体分析每一步如何去实现,我会在之后对这篇文章进行更新原创 2018-01-03 09:27:08 · 249 阅读 · 0 评论 -
SpringMVC源码剖析(三)9大组件初识
这里首先对SpringMVC中的9大组件做了一个初步的认识,之后会对他们的原理 用法再做介绍原创 2018-01-03 10:40:00 · 400 阅读 · 0 评论 -
SpringMVC源码剖析(四)组件之HandlerMapping
作用根据request找到Handler首先来看一下HandlerMapping的继承体系可以看到HandlerMapping家族成员分成两支一支AbstractHandlerMethodMapping 另一支AbstractUrlHandlerMapping.分析方法我们 使用 器用分析法它们拥有共同的父类AbstractHandlerMapping原创 2018-01-05 09:34:28 · 249 阅读 · 0 评论 -
DispatcherServlet的逻辑处理
在Servlet中会根据动作进行分发 而SpringMVC对于不同的方法没有做特殊处理 而是将程序统一引导到processRequest中/** * Process this request, publishing an event regardless of the outcome. * The actual event handling is performed原创 2018-02-03 18:35:08 · 265 阅读 · 0 评论 -
HandlerMapping:根据request寻找handler
我们知道HandlerMapping的作用是根据request找到handler。 是核心步骤的第一步。原理: 其实现机制简单来说就是维持了一个url到Controller关系的Map结构,其提供的实际功能也是根据request请求来获取具体执行的包含Controller信息的HandlerAdapter。HandlerMapping 接口:接口中主要定义了一个getHandler方法...原创 2018-02-03 16:52:01 · 835 阅读 · 0 评论 -
通过handlermapper寻找handleradapter
在doDispatch中通过getHandlerAdapter寻找到handleradapter/** * Return the HandlerAdapter for this handler object. * @param handler the handler object to find an adapter for * @throws Servlet原创 2018-02-03 17:06:15 · 750 阅读 · 0 评论 -
关于视图渲染
在doDispatch中通过handleradapter进行视图渲染 返回mv/** * This implementation expects the handler to be an {@link HandlerMethod}. */ @Override @Nullable public final ModelAndView handle(H原创 2018-02-03 17:14:54 · 775 阅读 · 0 评论 -
关于HandlerAdapter
这个接口有3个方法supports handler getLastModified HandlerAdapter是具体通过使用Handler的来干活的。 每个HandlerAdapter封装了一种Hanlder的具体使用方法。 HandlerAdapter的子类有AbstractMethodHandler RequestMappingHandlerAdapter HttpReq原创 2018-02-03 18:16:24 · 684 阅读 · 0 评论 -
分析HandlerMapping
HandlerMapping的接口是根据request寻找Handler和Interceptors 在DispatcherServlet的doDispatch方法中实现如下: protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { ...原创 2018-03-23 16:30:40 · 395 阅读 · 0 评论 -
SpringMVC原理总结
SpringMVC的本质是一个Servlet, 而Servlet的运行需要一个Servlet容器,比如Tomcat.Servlet容器封装了像底层Socket通用而很麻烦的事,让我们开发按照Servlet的接口去做就可以。 SpringMVC提供了一个通用的解决方案不需要写Servlet。只关心核心业务就可以了。Tomcat分为两部分: 连接器和容器 连接器专门处理网络连接相关事情原创 2018-02-03 23:18:25 · 399 阅读 · 0 评论 -
HandlerIntercepetor接口
HandlerInterceptor接口给我们提供了3个方法:(1)preHandle: 在执行controller处理之前执行,返回值为boolean ,返回值为true时接着执行postHandle和afterCompletion,如果我们返回false则中断执行 (2)postHandle:在执行controller的处理后,在ModelAndView处理前执行 (3)afterCo...原创 2018-03-23 15:00:48 · 842 阅读 · 0 评论 -
HandlerIntecepetor学习
简介 SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理。应用场景 1、日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计等。 2、权限检查:如登陆检测,进入处理器检测是否登陆,如果没有直接返回到登陆页面。 3、性能监控:典型的是慢日志。我们常用的就是日志记录,权限检查。如果实现HandlerInter...原创 2018-03-23 15:16:27 · 303 阅读 · 0 评论 -
HanlderExcutionChain
//******************************************************** 返回的类型是HandlerExecutionChain HandlerExcutionChain有3个变量//存储的对象是HandlerMethod private final Object handler;//存储的是拦截器数组 @Nullable...原创 2018-03-23 16:31:19 · 229 阅读 · 0 评论 -
HandlerMapping(二) AbstractHandlerMapping
这一节我们来分析HandlerMapping的子类 接下来我们介绍一下它的抽象实现类AbstractHandlerMappingAbstractHandlerMapping中对父类方法的实现如下:/** * Look up a handler for the given request, falling back to the default * handler ...原创 2018-03-23 16:51:15 · 603 阅读 · 0 评论 -
HandlerMapping(三)AbstractHandlerMethodMapping
分析第一个体系 AbstractHandlerMethodMapping我们来说说,这边每个类主要的职责 1. AbstractHandlerMapping 准备上下文环境;提供getHandlerInternal钩子;封装拦截器到HandlerExecutionChain 2. AbstractUrlHandlerMapping 实现注册handler的方法供子类使用;实现ge...原创 2018-03-23 16:54:00 · 316 阅读 · 0 评论 -
HandlerMapping(四)AbstractUrlHandlerMapping
分析第二个体系AbstractUrlHandlerMapping系列通过url来进行匹配。此系列的大致原理是将url和对应的Handler保存在一个Map中, 在getHandlerInternal方法使用url从map中获取Handler。 映射过程自己实现, 而map的初始化交给具体的子类去完成 handlerMap 还有一个处理’/’的rootHandler....原创 2018-03-23 16:55:21 · 255 阅读 · 0 评论 -
HandlerMapping(五)SimpleUrlHandlerMapping
在上一博客中我们介绍了handlerMap有一个注册url和Handler关系的注册函数,这个函数的调用是在实现类SimpleUrlHandlerMapping中实现的,目的是springMVC容器启动时将url和handler的对应关系注册到handlerMap中。SimpleUrlHandlerMapping有一个初始化容器上下问的操作,调用父类的super.initApplication...原创 2018-03-23 17:56:48 · 1473 阅读 · 0 评论 -
HandlerMapping(六)AbstractDetectingUrlHandlerMapping和AbstractControllerUrlHandlerMapping
在上一博客中我们介绍了handlerMap有一个注册url和Handler关系的注册函数,这个函数的调用是在实现类AbstractDetectingUrlHandlerMapping中实现的,目的是springMVC容器启动时将url和handler的对应关系注册到handlerMap中。AbstractDetectingUrlHandlerMapping 抽象类:通过重写initApplic...原创 2018-03-23 18:08:50 · 439 阅读 · 0 评论 -
HandlerMapping(八)
我们介绍了AbstractUrlHandlerMapping,其定义了一个抽象函数 //抽象方法,子类中实现 protected abstract String[] determineUrlsForHandler(String beanName); 在AbstractUrlHandlerMapping的子类BeanNameUrlHandlerMappin...原创 2018-03-23 18:11:33 · 163 阅读 · 0 评论 -
关于handler怎么获取handlerAdapter
在doDispatcher的第二步是通过handler获取handlerAdapter 在doDisptcher里的代码为// Determine handler adapter for the current request.HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());然后我们进入该方法...原创 2018-03-24 10:50:49 · 606 阅读 · 0 评论 -
HandlerAdapter
HandleAdapter HandlerAdapter的功能实际就是执行我们的具体的Controller、Servlet或者HttpRequestHandler中的方法。类结构如下:1、SimpleServletHandlerAdapter实际就是执行HttpServlet的service方法 springMVC源码分析–SimpleServletHandlerAdapter(二)...原创 2018-03-26 11:14:09 · 1419 阅读 · 0 评论 -
doDispatcher中的页面渲染
通过handleAdpter利用handler对象调用handle方法返回逻辑视图 mv 其实就是匹配合适的adpter 然后根据类型调用handler自身的方法而已。Servlet类型的调用service方法。 Controller类型的handleRequest方法。 HttpRquest类型的handleRequest方法。然后进入到了视图渲染阶段 在doDispatche...原创 2018-03-26 16:26:31 · 316 阅读 · 1 评论