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. ...
随机推荐
- MySQL - 分页问题
MySQL中的分页 MySQL中通过LIMIT关键字可以实现分页,如:(其中0表示开始记录数,10表示返回数据的数量) SELETE * FROM table_name LIMIT 0, 10 MyB ...
- MySQL - 并发事务出现的问题
1. 脏读 含义:在事务过程中,读到了其它事务为提交的数据. 解决方法:将数据库事务提升到读已提交或以上的隔离级别. 2. 不可重复读 含义:一次事务中,两次读操作中,读出来的数据内容不一致. 解决方 ...
- ExtJS 布局-Column布局(Column layout)
更新记录: 2022年6月1日 开始. 2022年6月4日 发布. 1.说明 使用列布局,可以将容器拆分为特定大小的列,并将子组件放置在这些列中. 可以设置子组件宽度值为: 百分比(相对父容器宽度) ...
- 想知道Vue3与Vue2的区别?五千字教程助你快速上手Vue3!
从Vue3发布以来,我就一直对其非常感兴趣,就一直想着将其投入公司的生产中,但是开始考虑到很多不确定性就暂时对一些很小的功能进行一些尝试:慢慢的发现组合式Api的形式非常适合开发(个人感觉),尤其是V ...
- 关于个人项目(臻美MV【仿抖音App】)滑动切换视频的分析(前端角度)
我们知道你天天刷抖音的时候可以上滑切换视频,互不影响.那么我们站在前端的角度能否可以实现这种效果呢?这是我的个人项目:臻美MV 下面我是用Vue写的,现在我把它开源. Vue: 初始界面 <te ...
- sap 获取设置的打印机参数
*&---------------------------------------------------------------------* *& Form FRM_SET_PRI ...
- SAP BOM 读取
1.查找 物料号.工厂.物料描述. 表:MARA MARC MAKT 逻辑: 输入物料(选择选项)中的物料编号(MARA-MATNR)和 输入工厂(选择选项 ...
- NC24866 [USACO 2009 Dec S]Music Notes
NC24866 [USACO 2009 Dec S]Music Notes 题目 题目描述 FJ is going to teach his cows how to play a song. The ...
- NC20032 [HNOI2003]激光炸弹
NC20032 [HNOI2003]激光炸弹 题目 题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标. 现在地图上有 \(n\) (\(N ≤ 10000\))个目标,用整数 ...
- 【cartographer_ros】六: 发布和订阅路标landmark信息
上一节介绍了陀螺仪Imu传感数据的订阅和发布. 本节会介绍路标Landmark数据的发布和订阅.Landmark在cartographer中作为定位的修正补充,避免定位丢失. 这里着重解释一下Land ...