框架的本质分析——Spring框架( 二 )


文章插图
 
Spring MVC为何诞生?记得在Spring MVC组件没出来之前,我们会用什么框架?SSI、SSH(Spring Struts Hibernate)、SSM(当然现在也是SSM) 。那么Spring MVC诞生的背景是什么?Struts真的就那么差吗?这里有必要说一下Java web框架的发展史:JSP/Servlet、Struts1.x、Struts2.x、Spring MVC 。
Java Web的发展史Model 1模型
 

框架的本质分析——Spring框架

文章插图
 
model 2模型,步入MVC时代
框架的本质分析——Spring框架

文章插图
 
MVC框架诞生
Struts1.x
框架的本质分析——Spring框架

文章插图
 
Struts2.x
框架的本质分析——Spring框架

文章插图
 
思考:为什么Struts2会被淘汰?
答案是:1. 漏洞太多,修不过来;2.Spring 太火了能用Spring 搞定的事情你会用其他框架吗,这种很少,我们可以看到招聘要求,很多时候都会要求Spring Mybatis这些框架能力,而很少提起Struts2了
Spring MVC
框架的本质分析——Spring框架

文章插图
 
Spring MVC实现原理是什么?本质是什么?在JSP、Servlet编码泛滥的那个年代,我们会写很多的Servlet,Filter,需要调整各种顺序,在web.xml里配置各种配置 。我们都知道编写Java Web都离不开其核心Servlet,那么Spring MVC是如何搞的,它能脱离规范吗?答案是:不能 。
Spring MVC离不开Servlet,其本质就是Servlet,然后在Servlet执行的流程上添加了很多特性 。
其核心就是DispatcherServlet
框架的本质分析——Spring框架

文章插图
 
Spring MVC工作流程,可以发现其核心就是DispatcherServlet,其他的都是流程中的扩展,让整个处理流程可以更容易扩展,解耦性更强 。
框架的本质分析——Spring框架

文章插图
 
为何如此发展
分析发展路线图、分析核心版本,追根溯源 。
Spring发展史
框架的本质分析——Spring框架

文章插图
 
Spring的核心版图可以看到其版图已经从原来的IOC容器和AOP后来扩张到了Web领域、Dao领域、ORM领域以及一些常用的JEE组件领域 。
框架的本质分析——Spring框架

文章插图
 
最后,当然Spring已经延伸出了Spring Boot、Spring Cloud以及现阶段的Spring Cloud Data Flow,接下来我们也会一点点剖析其本质 。




推荐阅读