Spring mvc源码分析系列--前言
Spring mvc源码分析系列--前言
前言
距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点:
- 现在项目开发前后端分离的趋势不可阻挡。Spring mvc这一套里面部分内容稍显落后了,例如视图部分可以说是耦合前端的逻辑,现在的后端也很少再会去写jsp之类的东西。所以在现在看来,似乎是有一点落后于时代了。现在再去分析Spring mvc的实现,是不是有点吃力不讨好。
- 项目开发中SpringBoot的广泛使用。SpringBoot提供了很多开箱即用的特性,这大量屏蔽了底层的细节,包括了这里想要分析的Spring mvc。那么在不知道的细节也能用得很好的情况下,再扒开Spring mvc的底裤去分析,是不是还有意义。
- servlet听起来似乎过于陈旧。然而很遗憾,Spring mvc的实现就是基于servlet,最核心的一个类
DispatcherServlet完成了大部分功能。所以现在去分析一个看起来很老旧的东西是不是还有价值。
不写的理由有很多,但是偷懒了两个月之后我还是决定写这部分。既然只是部分内容稍微过时了,那就说明还有在继续发光发热的部分,那我就力求贴近现在的开发使用,取其精华。Spring mvc基于的servlet虽然是个老东西了,但是有些东西是历久弥新的,如果一直没有出现一个东西完全替代它,不就恰恰说明它做得很好么?不过现在webflux开始兴起,servlet走向何方也未可知,至少在现在,它还在发挥着价值,值得一学。
在看Spring mvc这部分之前,需要掌握一些Spring的基础知识,可以去看一下我之前写的Ioc系列--Spring Ioc源码分析系列和Aop系列--老生常谈系列之Aop。其实看不看也无所谓,这部分比较简单,用过Spring开发的看懂基本没问题,有些细节可能不是很清楚的可以细看一下。
思路安排
本系列可能不只限于讲Spring mvc,可能会把周边关联的也讲一讲,例如web服务器Tomcat。
在这里我先灵魂拷问一下:
- 浏览器的一个请求,是如何精确到达你的web服务器里的业务逻辑里的,其中经历的流程能说个所以然吗?
- 我们一般用的web服务器是Tomcat,那么Tomcat给我们做了什么?
- 它跟servlet又是如何关联起来的?
- Spring mvc又做了什么,提供了什么便利?
这几个问题看起来简单,但是要说清楚,也不容易。可以简单思考下。
那接下来就说说计划的文章安排,可能最终会有出入,先安排如下:
Spring mvc与servlet的前世今生
web项目的启动流程,以Tomcat为例,Spring mvc为我们提供了什么,开发部署Spring mvc项目与纯servlet的区别
Spring mvc源码分析,这个可能会分几篇去写
SpringBoot内嵌Tomcat,SpringBoot时代,Spring mvc退居幕后,SpringBoot是如何做到了一键启动
结束篇
总结
这篇文章就当是简单开个头,算是又立了flag。话不多说,准备开始填坑。
Spring mvc又是老话题了,我时常怀疑,总是写别人已经写过的东西,是不是真的有意义。我没有得到答案,也许一条路不会因为前人走过了,后续的人再走就没有意义了。
最大的意义可能就是一直走在路上。
如果有人看到这里,那在这里老话重提。与君共勉,路漫漫其修远兮,吾将上下而求索。
Spring mvc源码分析系列--前言的更多相关文章
- Spring mvc源码分析系列--Servlet的前世今生
Spring mvc源码分析系列--Servlet的前世今生 概述 上一篇文章Spring mvc源码分析系列--前言挖了坑,但是由于最近需求繁忙,一直没有时间填坑.今天暂且来填一个小坑,这篇文章我们 ...
- Spring Ioc源码分析系列--前言
Spring Ioc源码分析系列--前言 为什么要写这个系列文章 首先这是我个人很久之前的一个计划,拖了很久没有实施,现在算是填坑了.其次,作为一个Java开发者,Spring是绕不开的课题.在Spr ...
- Spring AOP 源码分析系列文章导读
1. 简介 前一段时间,我学习了 Spring IOC 容器方面的源码,并写了数篇文章对此进行讲解.在写完 Spring IOC 容器源码分析系列文章中的最后一篇后,没敢懈怠,趁热打铁,花了3天时间阅 ...
- 精尽Spring MVC源码分析 - 寻找遗失的 web.xml
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- 精尽Spring MVC源码分析 - 调式环境搭建
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- 精尽Spring MVC源码分析 - 文章导读
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- 精尽Spring MVC源码分析 - WebApplicationContext 容器的初始化
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- 精尽Spring MVC源码分析 - 一个请求的旅行过程
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- 精尽Spring MVC源码分析 - MultipartResolver 组件
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
随机推荐
- TypeScript 泛型(generic) 入门介绍
TypeScript 泛型函数 下面来创建第一个使用泛型的例子:identity函数.这个函数会返回任何传入它的值.你可以把这个函数当成是echo命令.不用泛型的话,这个函数可能是下面这样: func ...
- 25.MYsql数据库管理
MYsql数据库管理 目录 MYsql数据库管理 数据库基本操作 库和表 常用的数据类型 查看数据表结构 查看当前服务器的数据库 查看数据库中包含的表 查看表的结构 SQL语句 创建及删除数据库和表 ...
- vue基本原理
当一个Vue实例创建时,Vue会遍历data中的属性,用Object.defineProperty(vue3.0使用proxy)将它们转为getter/setter,并且在内部追踪相关依赖,在属性被访 ...
- kvm虚拟机在线扩容
fdisk -l查看当前虚拟机磁盘容量 1. 镜像扩容 先操作镜像,给镜像增加2T容量: 关闭虚拟机back_log,然后再宿主机上给虚拟机扩容 qemu-img info /home/kvm/bac ...
- UiPath存在图像Image Exists的介绍和使用
一.Image Exists的介绍 检查是否在指定的UI元素中找到图像,输出的是一个布尔值 二.Image Exists在UiPath中的使用 1. 打开设计器,在设计库中新建一个Sequence,为 ...
- Java中Double类型数据比较大小
方法一:转成字符串之后比较 如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接实现比较两个double数据是否相等.注意这种方法 ...
- APISpace 绕口令API接口 免费好用
绕口令又称急口令.吃口令.拗口令等.是一种民间传统的语言游戏 ,由于它是将若干双声.叠韵词或发音相同.相近的语.词有意集中在一起,组成简单.有趣的语韵,要求快速念出,所以读起来使人感到节奏感强,妙趣横 ...
- Gorgerous -「歌词」留言板
歌者,献祭「心声」,以沐浴「新生」. Oh love. How I miss you every single days when I see you on those streets. Oh lov ...
- 我已经说了5种css居中实现的方式了,面试官竟然说还不够?
这是一篇关于居中对齐方式的总结 开篇之前,先问一下大家都知道几种居中的实现方式? 面试时答出来两三个就不错了,就怕面试官还让你继续说.今天就来总结一下这些居中的方式 使用flex布局设置居中. 使用f ...
- 加强版:合并果子[NOIP2004]
题目 链接:https://ac.nowcoder.com/acm/contest/26887/1001 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K, ...