『互联网架构』软件架构-spring源码之spring MVC(下)(13)

栏目: Java · 发布时间: 5年前

内容简介:有老铁联系我,想好好学习一个框架,从底层看源码,从头跟到尾,每个都写上注释。我的建议老铁别傻了,别人写一个框架多少个人的团队,多少个日日夜夜你还要养家糊口,其实有三个阶段,我来说下具体哪三个阶段。学习一个框架的阶段

有老铁联系我,想好好学习一个框架,从底层看源码,从头跟到尾,每个都写上注释。我的建议老铁别傻了,别人写一个框架多少个人的团队,多少个日日夜夜你还要养家糊口,其实有三个阶段,我来说下具体哪三个阶段。

『互联网架构』软件架构-spring源码之spring MVC(下)(13)

学习一个框架的阶段

1. 学会对这个框架的使用

翻翻书,百度一下基本就可以了。

2. 掌握这个框架的架构思想和它的层次结构。【掌握到第二阶段就刚刚好】

接口,模型,上下文。思想和层次基本都了解,怎么运作。

3. 掌握底层的实现细节(需要改造的时候再去深入细节)

并不建议掌握第三层,框架进行改造的,底层具体实现进行研究,并不需要全部都了解,而是改哪里研究哪里,具体的实现。具体实现。千万不要,看一个框架的源码,从头跟到尾,例如spring MVC的功能,mvc到底是怎么实现的,从它定义到它的实现,到所有的子类的实现,一个纵向的学习很容易就绕晕了。一个spring mvc可能有上千个方法被调用。你能受得了吗?老铁!

####mvc的基础理论与spring mvc设计思想

* 回顾serlvet与jsp执行

记得刚毕业的时候面试,经常问servlet是什么?servlet的生命周期?jsp的9大内置对象是什么?

『互联网架构』软件架构-spring源码之spring MVC(下)(13)

spring mvc 本质上对其进行封装简化了开发流程,易用性, 程序的结构更清晰。

1. 基于注解的URL映射

2. http表单参数转换

3. 全局统一的异常处理

4. 拦截器的实现

5. 多视图控制

其实如果项目比较小,没必要非用spring mvc 看个人习惯吧。网上也有一种说法,spring mvc其实性能没有servlet快,这个可以忽略不记,其实百分之90都是在数据库的瓶颈上,或者是业务逻辑的web方法处理上。springmvc只是在serlvet的基础上完成了一些功能,其实没没啥开拓的功能,只是serlvet的提升,封装。

  • spring mvc的流程

『互联网架构』软件架构-spring源码之spring MVC(下)(13)

  • 基于示例展开dispatchServlet 核心类结构
  1. HandlerMapping:url与控制器的映谢
  2. HandlerAdapter: 控制器执行适配器
  3. ViewResolver: 视图仓库
  4. view:具体解析视图
  5. HandlerExceptionResolver:异常捕捕捉器

『互联网架构』软件架构-spring源码之spring MVC(下)(13)

  • spring mvc 上下文初始过程(10)
  1. webApplicationContext 初始过程
  2. handlerMappings 初始过程
  3. handlerExceptionResolvers 初始过程
  4. viewResolvers 初始过程
  5. handleAdapters 初始过程
  • request请求过程
  1. 调用doDispatch()
  2. 遍历handlerMappings 与request 获取一个执行链 getHandler()
  3. 遍历handleAdapters 与 handle 获取一个handle 适配器
  4. 通过执行链 去调用拦截器当中的 preHandle() 方法 ,进行预处理。
  5. 基于handle 适配器 去调用handle 方法,返回 modelAndView
  6. 通过执行链 去调用拦截器当中的 PostHandle() 方法 ,进行拦截处理。
  7. processDispatchResult()
    7.1. 正常:调用render()进行视图解析
    7.1.1 基于 遍历 viewResolvers 工与 viewname 获取View
    7.1.2 调用view.render() 进行视图解析和返回,设置model 至request
    7.2 异常:遍历handlerExceptionResolvers 调用resolveException(),返回mv,最后跳转至异常

PS:spring mvc 源码这块就说到这里,看的头晕眼花,允许我抽根烟,哈哈。

『互联网架构』软件架构-spring源码之spring MVC(下)(13)

>>原创文章,欢迎转载。转载请注明:转载自,谢谢!>>原文链接地址:上一篇:

已是最新文章


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computational Geometry

Computational Geometry

Mark de Berg、Otfried Cheong、Marc van Kreveld、Mark Overmars / Springer / 2008-4-16 / USD 49.95

This well-accepted introduction to computational geometry is a textbook for high-level undergraduate and low-level graduate courses. The focus is on algorithms and hence the book is well suited for st......一起来看看 《Computational Geometry》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具