Spring历史版本变迁和如今的生态帝国

原创 2017年12月28日 00:00:00

?wx_lazy=1

前两篇:

为什么要有Spring?

为什么要有Spring AOP?


前两篇从Web开发史的角度介绍了我们在开发的时候遇到的一个个坑,然后一步步衍生出Spring Ioc和Spring AOP的概念雏形。Spring从2004年第一个正式版1.0 Final Released发展至今,俨然已经成为了一个生态帝国(开局只有一把枪,装备全靠打!),目前也已经迭代到5.0,拥有诸多的子项目,基本可以解决绝大多数场景的应用!

而在进一步学习Spring的核心原理之前,有必要和大家一起梳理一下Spring历史版本的变迁,知晓一下每一个版本新增了哪些东西,解决了哪些我们开发中的问题,以便我们更清楚的理解这个生态帝国是如何一步一发展壮大的!

一、Spring历史版本变迁

1、Spring 1.x

大概在2004年3月24日这一天,Spring Framework 1.0 final正式出现在我们的视野中,源码项目结构如下:

?wxfrom=5&wx_lazy=1

引用依赖如下:

UtWdDgynLdaPKnv354IwEnswfT8aSZfoUmZFCibSJ1nznx5ibRv0lTkDjVOtpZnibEmjjM3II81ticIjaMmPTTcsZg

Spring 1.0当时只包含一个完整的项目,他把所有的功能都集中在一个项目中,其中包含了核心的Ioc、AOP,同时也包含了其他的诸多功能,例如:JDBC、Mail、ORM、事务、定时任务、Spring MVC等。

由于Spring超前的眼光和博大的精神,在第一个版本的时候已经支持了很多第三方的框架,例如:Hibernate、ibatis、模板引擎等。

尽管如此,此时的Spring除了最核心的Ioc和AOP之外,其他的模块犹如我们现在众多的开源项目一样,大多是对第三方框架的简单封装!我也相信很多个人或企业也基本都维护了一套类似这种的框架供项目开发使用。

此时的Spring还很懵懂,只支持基于XML的配置!关于更多关于Spring 1.0 的信息可以参考:

https://spring.io/blog/2004/03/24/spring-framework-1-0-final-released

2、Spring 2.x

Spring 2.x的源码项目结构如下:

UtWdDgynLdaPKnv354IwEnswfT8aSZfo53Xia5n7cqf1YFHuxGf69d3AHoVf3BZTL0hBl8yw2ic29yqic4Bm8jzug

引用依赖如下:

UtWdDgynLdaPKnv354IwEnswfT8aSZfokgAG4D82Zickm41oyoY4hnMzWquCA37WtQWuic5WoQSkia6DxxVaWYsBw

通过上图中和1.0版本的对比,我们首先可以很直观的感受到Spring做了哪些改变。

Spring 2.x增加对注解的支持,支持了基于注解的配置。

3、Spring 3.x

Spring在GitHub托管的代码,最早的版本只能看到Spring v3.1.0.M2(https://github.com/spring-projects/spring-framework),源码结构如下:

UtWdDgynLdaPKnv354IwEnswfT8aSZfoXeRXNIXhbwNILIOqao6MWAj1KXzVWk2oF3kH9ojI7NvzqJCic00pwfQ

Spring 3.x支持了基于Java类的配置。

4、Spring 4.x

UtWdDgynLdaPKnv354IwEnswfT8aSZfoHnbPPicd5hrPmG0CHNNxlQWByYeugSwse4UfSZ0aict05obibBstJKfuw

(1)Spring 4.x新特性:

Spring 4.x全面支持Java 8.0,支持Lambda表达式的使用,提供了对@Scheduled和@PropertySource重复注解的支持,提供了空指针终结者Optional,对核心容器进行增加:支持泛型的依赖注入、Map的依赖注入、Lazy延迟依赖的注入、List注入、Condition条件注解注入、对CGLib动态代理类进行了增强。

Spring 4.x还支持了基于Groovy DSL的配置,提高Bean配置的灵活性。

Spring 4.x开始,Spring MVC基于Servlet 3.0 开发,并且为了方便Restful开发,引入了新的RestController注解器注解,同时还增加了一个AsyncRestTemplate支持Rest客户端的异步无阻塞请求。

(2)简单的思维导图如下:

UtWdDgynLdaPKnv354IwEnswfT8aSZfoT86ZW0iccZMwibsIc5njiahA5lEAaLy63sCzoQcLEguvZpvUs8oIBj92g

5、Spring 5.x

UtWdDgynLdaPKnv354IwEnswfT8aSZforLpWR1ic6Nyruble89ibD0oXK1GVzGyAu0lf9iaZOgmQ6TzFRubAT7FFw

Spring 5.x主要新特性:

UtWdDgynLdaPKnv354IwEnswfT8aSZfoibBicSVU6j4ICgm4QHGVmMJw9aSlLwkBic1B7WAHoiawibEEarZGWGdkyeA

6、小结

Spring 1.x、Spring 2.x、Spring 3.x由于版本比较久,而我从开始就是从Spring 4.0 开始用的,所以更多关于以前版本的信息这里解释的不是很全,上述的源码截图只是作为一种直观地感受,希望能感受到Spring版本的变迁过程。

二、Spring如今的生态帝国

Spring从最初的一城一池,发展到如今已经发展为一个生态帝国,旗下拥有诸多的子项目,从最基本的Spring Ioc/AOP使用,到安全管理,再到大数据,Spring已经逐渐的渗入到各个领域。目前,几乎所有JavaWeb相关的开发都可以在Spring中找到合适的方案,为了在开发的时候,防止重造轮子,下边梳理一下Spring的各个子项目,做到心中有数:

UtWdDgynLdaPKnv354IwEnswfT8aSZfo0icKp7nJHfqpCtPpwN5YUo0iaW5LsE2DHHr03nEAxSHJTV0Q1jGBHQuA

参考文章:

1、《精通Spring 4.x企业应用开发实战》


最近热文阅读:

1、Java面试题84集系列全集!有需要的小伙伴赶紧过来保存啦!

2、Java后端技术从0到1技术路线,一步步走向大神!

2、已经出狱的李一男和即将出狱的王欣,还能赶上这个时代吗?

4、大型网站技术架构负载均衡技术介绍及学习资源推荐

5、大型网站应用之海量数据和高并发解决方案总结一二

6、Java大型互联网公司经典面试题,论JDK源码的重要性的无限思考

7、使用Jenkins配置SpringBoot的自动化构建

更多精彩,从关注《Java后端技术》公众号开始!

?

版权声明:本文为博主原创文章,未经博主允许不得转载。

钱柜娱乐开户发展史(钱柜娱乐开户各版本特性-知识篇)

文章整理了钱柜娱乐开户 0.x,钱柜娱乐开户 1.x, 钱柜娱乐开户 2.x,钱柜娱乐开户 3.x,钱柜娱乐开户 4.x,钱柜娱乐开户 5.x,钱柜娱乐开户 6.x相关更新的内容文章主要...
  • u012964796
  • u012964796
  • 2016年02月14日 11:50
  • 10783

iOS历史回顾(iOS1~iOS8)

历史对比
  • sakulafly
  • sakulafly
  • 2014年09月27日 23:37
  • 10776

技术历史——Spring发展历程总结

了解一个人最好的方式便是了解这个人的历史,学习新知识也是如果,如果你希望深入理解一项技术那么就去了解真相技术的前因后果。 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过...
  • nowadaysall
  • nowadaysall
  • 2016年11月25日 12:27
  • 2504

Spring核心技术原理-(3)-Spring历史版本变迁和如今的生态帝国

前几篇:Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring?Spring核心技术原理-(2)-通过Web开发演进过程了解一下为什么要有Spring AOP?前两篇从...
  • u010870518
  • u010870518
  • 2017年12月27日 13:09
  • 520

大屏时代的生态变迁_看平板手机的拇指热键与界面布局

原文链接 大屏时代的生态变迁,看平板手机的拇指热键与界面布局 博文视点 2017-05-11 09:52:33 浏览73 评论0 钱柜娱乐开户 http 布局 Blog 触...
  • bystarlight
  • bystarlight
  • 2017年05月12日 10:26
  • 265

大屏时代的生态变迁,看平板手机的拇指热键与界面布局

曾几何时,无数大大小小的触屏设备仿佛泄闸的洪水一般涌入这个世界。面对突如其来的生态变迁,界面设计师们别无选择,只有在急流当中奋力学习游泳,才能让自己不至于被洪潮所吞没。本文带你了解如何面向平板手机的拇...
  • broadview2006
  • broadview2006
  • 2017年05月11日 09:52
  • 2851

开创一个生态,而非建立一个帝国

中国古话讲“不孝有三,无后为大”。净空法师说弘扬佛法最重要的事,是“后继有人”。生物学家会告诉你,物种最大的使命是把基因传下去。 那些伟大的 CEO,如何确保继任者能让企业活得长一点? 让我们从鲍...
  • Jye13
  • Jye13
  • 2013年02月26日 20:25
  • 315

微媒体-互联网媒体的历史变迁归宿

国内互联网媒体的历史已经超过10年,10年还是太新,太短,培养的人才太少。故而网媒扩张的时候,往往会从平媒直接挖一些有三五年经验的尖子过来,许以重金高位。但平媒与网媒之间其实有一道鸿沟,正常情况下,需...
  • SmartTony
  • SmartTony
  • 2011年10月02日 00:00
  • 878

每个人都宣称自己是别人-译稿:UserAgent的历史变迁

Google推出的Chrome让大家热议纷纷,只有专业用户才会注意到用Chrome访问网页时发出的“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Ap...
  • seckilling
  • seckilling
  • 2012年05月09日 09:23
  • 1053

综述:显卡25年历史变迁

现在,提到显卡,人们就会想到游戏和电影中精美的3D图形。实际上,早期的显卡不但不能处理3D图形,甚至连2D图形都无法处理,仅仅具备显示的能力。   时至今日,显卡不但能够处理复杂的3D图形,甚至还可...
  • pizi0475
  • pizi0475
  • 2012年02月02日 18:18
  • 1158
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring历史版本变迁和如今的生态帝国
举报原因:
原因补充:

(最多只允许输入30个字)