前言
由于我是先学的springboot,然后才学spring,接着springMVC,最后才学的javaWeb,内容比较多容易搞混,在此自己进行一个小总结,比较一下它们之间的关系。
javaWeb
-
tomcat服务器会管理我们自定义的servlet,通过web.xml中的servlet-mapping,tomcat能够将不同请求转交给对应的servlet,实现一系列的功能。
-
filter用于拦截请求,也由tomcat管理,并通过web.xml配置查找对应的filter路径
SpringMVC
- springMVC意味着model,view,controller,其中还多加了一个前端控制器,即DispatcherServlet
- 我们只需要在web.xml中配置一个DispatcherServlet,让其根据不同请求自动分发到对应的springController,不需要像javaWeb,对于不同的路径都要手动添加一个与之匹配的servlet写到web.xml中
- 并且用于处理请求的servlet都变成了bean,放进Spring容器中进行管理
- 可以更便捷地进行开发
SpringBoot
- 在SpringMVC的基础上,再封装一层,连web.xml都不用写了,自动进行配置
Spring
- Spring是基石
所以不管是SpringBoot还是SpringMVC,与浏览器交互的底层原理都是servlet,这也是为什么我从SpringBoot不断往回看的原因
从SpringMVC到javaweb的逆向学习过程可能只适合我吧,我喜欢先看到应用,再去探究实现原理,为了看懂SpringMVC源码,我先去看了Spring源码,为了搞懂DispatcherServlet的作用,才去看的javaweb,这样折腾下来印象会深刻一些,因为在我脑海中他们就是因果关系
目前Spring+SpringMVC+SpringBoot的源码我也差不多了解了一遍,接下来就要进军中间件的源码了,希望会更有意思