源码精读 - Spring MVC - 介绍(一)
yund56 2025-04-29 00:57 38 浏览
提到SpringMVC大家也许很快会想到它的使用,它的原理,大部分的认知还来自于图书,本文将区别于传统的图书,从精读Spring MVC源码入手,学习其设计精髓,从而将其底层理论运用到实际的架构设计工作中,更有甚者可以自己写一套基于MVC理论的后端框架
前提
SpringMVC版本:spring-webmvc-5.3.7
之所以选用这个版本,是因为在作者实际工作中,这个版本用到的最多。
根目录
org.springframework.web.servlet从目录结构上,我们不难发现该模块属于SpringFramework框架,区别于如SpringBoot, SpringCloud, web目录表示其主要包含web相关的内容,看到servlet目录大家最容易想到的肯定是J2EE,是的没错,该框架主要就是对Servlet的封装与集成,其目的是为了快速高效并方便的使用Servlet。
让我们来看下官方的注释
org.springframework.web.servlet.package-info上类中的原文是:
官方源码DOC精读时刻
原文:Provides servlets that integrate with the application context infrastructure, and the core interfaces and classes for the Spring web MVC framework.
中文:提供了与应用程序上下文基础架构集成的 Servlet,并且提供了Spring Web MVC 框架的核心接口和类型。
原文:This package and related packages are discussed in Chapters 12 and 13 of Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002).
中文:此软件包和相关软件包在一起 Rod Johnson 的 Expert One-On-One J2EE 设计和开发(Wrox,2002 年)的第 12 章和第 13 章中进行了讨论。
上述doc中,我们了解到了如:
Expert One-On-One J2EE Design and Development 是一本图书,其作者为Rod Johnson,出版社Wrox
Wrox公司简介
Wrox公司是以“由程序员为程序员而著”为创作理念的著名出版公司。在这种理念的指导下,Wrox出版了几百本深受全世界程序员青睐的优秀编程类图书,内容涉及C、C++、PHP、Oracle、SQLServer、Java、.NET等各个主要的计算机程序开发领域,曾指引数以百万计的计算机编程爱好者迅速踏进编程殿堂,并帮助无数初中级开发人员成为开发高手。
从上述描述中我们不难发现,这个包的程序应为为SpringMVC的核心,其中主要包含了如下内容:
从上述类图中我们不难发现,其核心内容如下:
FlashMap: 用于保存一个URL跳向另一个URL时的属性
FlashMapManager:重定向FlashMap管理器,定义了从上一个请求中获取并更新FlashMap的方法及并输出FlashMap
ThemeResolver:主题解析器,关于主题的解析提供了基于Cookie与基于Session的解决方案,
用户可以通过修改固定的key并结合HandlerInterceptor拦截器来修改主题,是动态主题切换的一个解决方案
HandlerInterceptor: 用于自定义处理程序执行链的工作流接口。应用程序可以为某些处理程序组注册任意数量的现有或自定义拦截器,以添加常见的预处理行为,而无需修改每个处理程序实现。
AsyncHandlerInterceptor: 是对HandlerInterceptor的扩展,包含了开始异步请求处理后调用的回调方法 。
HandlerMapping:用于定义请求与其处理对象间的映射的接口,主要定义了通过请求转换为请求处理链的方法
HandlerAdapter: MVC 框架 SPI(SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类),允许核心 MVC 工作流的参数化.
HandlerExecutionChain:处理器执行链,包括了处理程序对象和任何处理程序拦截器。由 HandlerMapping 的 HandlerMapping.getHandler 方法返回。
HandlerExceptionResolver: 解决执行期间异常处理的解析器
LocaleResolver:基于 Web 的区域设置解析策略的接口
LocaleContextResolver:是对LocaleResolver的扩展,添加了支持富有的Locale的上下文
ViewResolver:视图解析器,可以按名称解析视图的对象实现的接口
View:视图,用于 Web 交互的 MVC 视图,用于呈现内容并暴露模型。
HttpServletBean:是HttpServlet的扩展,它将其配置参数(web.xml 中的 servlet 标记内的 init-param 条目)视为 bean 属性
SmartView:提供了附加的信息,比如一个视图是否是重定向的。
RequestToViewNameTranslator:请求转为视图名的翻译器
FrameworkServlet:Spring Web 框架的基本 servlet。在基于 JavaBean 的整体解决方案中提供与 Spring 应用程序上下文的集成
DispatcherServlet:HTTP 请求或处理程序控制器的中央调度程序,如WebUI的控制器或基于http协议远程服务输出,将一个web请求分发给注册的处理器
ModelAndViewDefiningException:模型与视图定义异常,可以将发生错误时抛出的异常发送个一个特定模型的特定的视图
NoHandlerFoundException:默认情况下,当 DispatcherServlet 找不到请求的处理程序时,它会发送 404 响应。但是,如果其属性“
throwExceptionIfNoHandlerFound”设置为 true,则会引发此异常,并且可以使用配置的 HandlerExceptionResolver 进行处理。
ModelAndView: Web MVC 框架中模型和视图的持有者。请注意,模型与视图是完全不同的。此类仅仅持有两者以使控制器可以在单个返回值中返回模型和视图。
DispatcherServlet.properties:定义了DispatcherServlet 的策略接口的默认实现类
至此,我们已经把Spring MVC的核心框架类进行简单的介绍与认识,其无非也是对MVC理论知识的抽象与定义,让我们用一个脑图来表达下其核心吧。
接下来,我们将会从具体的实现为切入点,详细的介绍各部分内容,尽情期待。
相关推荐
- SM小分队Girls on Top,女神战队少了f(x)?
-
这次由SM娱乐公司在冬季即将开演的smtown里,将公司的所有女团成员集结成了一个小分队project。第一位这是全面ACE的大姐成员权宝儿(BoA),出道二十年,在日本单人销量过千万,韩国国内200...
- 韩国女团 aespa 首场 VR 演唱会或暗示 Quest 3 将于 10 月推出
-
AmazeVR宣布将在十月份举办一场现场VR音乐会,观众将佩戴MetaQuest3进行体验。韩国女团aespa于2020年11月出道,此后在日本推出了三张金唱片,在韩国推出了...
- 韩网热议!女团aespa成员Giselle在长腿爱豆中真的是legend
-
身高163的Giselle,长腿傲人,身材比例绝了...
- 假唱而被骂爆的女团:IVE、NewJeans、aespa上榜
-
在韩国,其实K-pop偶像并不被认为是真正的歌手,因为偶像们必须兼备舞蹈能力、也经常透过对嘴来完成舞台。由于科技的日渐发达,也有许多网友会利用消音软体来验证K-pop偶像到底有没有开麦唱歌,导致假唱这...
- 新女团Aespa登时尚大片 四个少女四种style
-
来源:环球网
- 韩国女团aespa新歌MV曝光 画面梦幻造型超美
-
12月20日,韩国女团aespa翻唱曲《DreamsComeTrue》MV公开,视频中,她们的造型超美!WINTER背后长出一双梦幻般的翅膀。柳智敏笑容甜美。宁艺卓皮肤白皙。GISELLE五官精致...
- 女网友向拳头维权,自称是萨勒芬妮的原型?某韩国女团抄袭KDA
-
女英雄萨勒芬妮(Seraphine)是拳头在2020年推出的第五位新英雄,在还没有正式上线时就备受lsp玩家的关注,因为她实在是太可爱了。和其他新英雄不同的是,萨勒芬妮在没上线时就被拳头当成虚拟偶像来...
- 人气TOP女团是?INS粉丝数见分晓;TWICE成员为何在演唱会落泪?
-
现在的人气TOP女团是?INS粉丝数见分晓!现在爱豆和粉丝之间的交流方法变得多种多样,但是Instagram依然是主要的交流手段。很多粉丝根据粉丝数评价偶像的人气,拥有数百、数千万粉丝的组合作为全球偶...
- 韩国女团MVaespa Drama MV_韩国女团穿超短裙子跳舞
-
WelcometoDrama.Pleasefollow4ruleswhilewatchingtheDrama.·1)Lookbackimmediatelywhenyoufe...
- aespa师妹团今年将出道! SM职员亲口曝「新女团风格、人数」
-
记者刘宛欣/综合报导南韩造星工厂SM娱乐曾打造出东方神起、SUPERJUNIOR、少女时代、SHINee、EXO等传奇团体,近年推出的aespa、RIIZE更是双双成为新生代一线团体,深受大众与粉丝...
- 南韩最活跃的女团aespa,新专辑《Girls》即将发布,盘点昔日经典
-
女团aespa歌曲盘点,新专辑《Girls》即将发布,期待大火。明天也就是2022年的7月8号,aespa新专辑《Girls》即将发行。这是继首张专辑《Savage》之后,时隔19个月的第二张专辑,这...
- 章泽天女团aespa出席戛纳晚宴 宋康昊携新片亮相
-
搜狐娱乐讯(山今/文玄反影/图科明/视频)法国时间5月23日晚,女团aespa、宋康昊、章泽天等明星亮相戛纳晚宴。章泽天身姿优越。章泽天肩颈线优越。章泽天双臂纤细。章泽天仪态端正。女团aespa亮...
- Aespa舞台暴露身高比例,宁艺卓脸大,柳智敏有“TOP”相
-
作为SM公司最新女团aespa,初舞台《BlackMamba》公开,在初舞台里,看得出来SM公司是下了大功夫的,虽然之前SM公司新出的女团都有很长的先导片,但是aespa显然是有“特殊待遇”。运用了...
- AESPA女团成员柳智敏karina大美女
-
真队内速度最快最火达成队内首个且唯一两百万点赞五代男女团中输断层第一(图转自微博)...
- 对来学校演出的女团成员语言性骚扰?韩国这所男高的学生恶心透了
-
哕了……本月4日,景福男子高中相关人士称已经找到了在SNS中上传对aespa成员进行性骚扰文章的学生,并开始着手调查。2日,SM娱乐创始人李秀满的母校——景福高中迎来了建校101周年庆典活动。当天,S...
- 一周热门
- 最近发表
-
- SM小分队Girls on Top,女神战队少了f(x)?
- 韩国女团 aespa 首场 VR 演唱会或暗示 Quest 3 将于 10 月推出
- 韩网热议!女团aespa成员Giselle在长腿爱豆中真的是legend
- 假唱而被骂爆的女团:IVE、NewJeans、aespa上榜
- 新女团Aespa登时尚大片 四个少女四种style
- 韩国女团aespa新歌MV曝光 画面梦幻造型超美
- 女网友向拳头维权,自称是萨勒芬妮的原型?某韩国女团抄袭KDA
- 人气TOP女团是?INS粉丝数见分晓;TWICE成员为何在演唱会落泪?
- 韩国女团MVaespa Drama MV_韩国女团穿超短裙子跳舞
- aespa师妹团今年将出道! SM职员亲口曝「新女团风格、人数」
- 标签列表
-
- filter函数js (37)
- filter函数excel用不了 (73)
- 商城开发 (40)
- 影视网站免费源码最新版 (57)
- 影视资源api接口 (46)
- 网站留言板代码大全 (56)
- java版软件下载 (52)
- java教材电子课本下载 (48)
- 0基础编程从什么开始学 (50)
- java是用来干嘛的 (51)
- it入门应该学什么 (55)
- java线上课程 (55)
- 学java的软件叫什么软件 (38)
- 程序开发软件有哪些 (53)
- 软件培训 (59)
- 机器人编程代码大全 (50)
- 少儿编程教程免费 (45)
- 新代系统编程教学 (61)
- 共创世界编程网站 (38)
- 亲测源码 (36)
- 三角函数积分公式表 (35)
- 函数的表示方法 (34)
- 表格乘法的公式怎么设置 (34)
- sumif函数的例子 (34)
- 图片素材 (36)
