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. ...
随机推荐
- Java-SpringBoot-使用多态给项目解耦
Java-SpringBoot-使用多态给项目解耦 提及 今天在打算维护一下智慧社区这个项目的时候,想到项目是使用Satoken这个开箱即用的授权和认证的组件,因为在项目开启的时候对SpringSec ...
- C# 使用SpecFlow创建BDD测试用例
将自然语言编写的测试用例转换为可执行的测试,可以大大降低需求与开发之间的沟通成本,这是BDD(行为驱动开发)希望达到的效果.SpecFlow是.Net平台的BDD工具,可以帮助我们创建面向BDD的测试 ...
- 30.Mysql主从复制、读写分离
Mysql主从复制.读写分离 目录 Mysql主从复制.读写分离 读写分离 读写分离概述 为什么要读写分离 什么时候要读写分离 主从复制与读写分离 mysql支持的复制类型 主从复制的工作过程 初始环 ...
- 【.NET 6】多线程的几种打开方式和代码演示
前言: 多线程无处不在,平常的开发过程中,应该算是最常用的基础技术之一了.以下通过Thread.ThreadPool.再到Task.Parallel.线程锁.线程取消等方面,一步步进行演示多线程的一些 ...
- JS:条件语句2
1.for循环:循环代码块一定的次数 例: for(var i = 0;i<5;i++){ console.log(i); } // 0 1 2 3 4 遍历对象: var arr=[" ...
- SAP APO - Architecture
SAP APO体系结构由多个组件组成-数据库,BI环境包含InfoCube和实时缓存. InfoCube是BI数据集市的一部分,实时缓存是您保留与计划和调度有关的所有数据的主要区域. 您可以在实时缓存 ...
- Windows 2008R2 IIS环境配置(靶机)
一.Windows 2008 R2系统安装 VMware Workstation 15安装包 链接:https://pan.baidu.com/s/11sYcZTYPqIV-pyvzo7pWLQ 提取 ...
- ms12-020漏洞
一.环境说明 kali linux windows 7 sp1 二.ms12-020漏洞利用 msf5 exploit(windows/browser/ms10_002_aurora) > se ...
- 腾讯云原生数据库TDSQL-C入选信通院《云原生产品目录》
近日,中国信通院.云计算开源产业联盟正式对外发布<云原生产品目录>,腾讯云原生数据库TDSQL-C凭借其超强性能.极致效率的弹性伸缩和完善的产品化解决方案体系,成功入围目录. 全球数字经济 ...
- idea 错误: 找不到或无法加载主类 xx.xxx.Application
原因module 里面缺少iml文件 生成iml文件方法二:(建议):刷新一下Maven Project就会自动生成.iml文件.点击下图红框标记的按钮即可 完成后就会自动生成.iml文件. 方法二: ...