前言
说到Spring,也许现在的开发者们最先想到的是JoshLong
超快的语速与现场代码能力,让很多Java开发者折服。
然而Spring的历史上,最传奇的还是要数其创始人:RodJohnson!
先不说别的,看到他的学历,你就震惊的了,悉尼大学的音乐学博士!不要惊讶,不是计算机!
也许就是因为这样一颗理性思维与艺术细胞结合的秃顶大佬,才能造就Spring这样的产物吧。
RodJohnson
RodJohnson,就是上图这位头顶略微地中海的男子,但是秃脑袋瓜并没有让RodJohnson变得难看,好几个同学一致认为这家伙长得很酷。
按照他身边的密友所描述的,RodJohnson平日里看上去就像是一个典型的英国绅士,虽然他好像出生在澳大利亚,但是现在住在伦敦。说起话来也是一板一眼,有条有理。字正腔圆而略有点尖的口音让人听起来特别清楚。
大多数人都认为RodJohnson似乎天生缺少一样东西:幽默感。但实际上看看下面这端开场白:
回到年,当我写下第一行代码时,那些代码并没有放到GitHub,没放在上面是因为GitHub当时不存在,所以我想Spring应该比Git老三四岁...
让人不禁宛然一笑,RodJohnson也跟其他程序员一样是个挺可爱的人吧。
轮子理论
提到RodJohnson,大家还总会想起轮子理论。所谓轮子理论,就是指:不要重复发明轮子,这是西方国家的一句谚语,原话是:DontReinventtheWheel。意思是企业中任何一项工作实际上都有人做过,我们所需要做的就是找到做过这件事情的人。拿到软件领域中就是指有的项目或功能,别人已经做过,我们需要用的时候,直接拿来用即可,而不要重新制造。
RodJohnson想告诉我们,Spring就是在不重复发明轮子的理念及指导原则上做起来。
于是一夜之间,随着Spring在全世界的风风火火,特别是吹到我们祖国的时候,也许是爱屋及乌的原因吧,轮子理论也被众多的Spring粉丝当成做人做事做程序的信条及原则。
Spring与ExpertOneononeJ2EEDevelopmentwithoutEJB
Spring,可以说就像是RodJohnson的代名词一样,大家对RodJohnson印象最深的成就自然是SpringFramework和ExpertOneononeJ2EEDevelopmentwithoutEJB。
Java从诞生之日到如今经历了风风雨雨数十年,从低谷到高峰,JAVA之所以是世界上最受欢迎的开发语言之一,Spring框架起到了非常重要的作用。
当时间还停在21世纪初,JavaEE的整个系统框架处在臃肿、低效、脱离现实的种种现状之中,将其进行轻量化成为业内的一致的呼声,此时RodJohnson就像一颗璀璨的明珠一样横空出世,积极寻求探索革新之道。
RodJohnson最开始在年为伦敦金融界提供独立咨询业务时曾经写了一个简单的框架,以此为基础他编写了interface21框架,这是一个力图冲破JavaEE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。可以说这就是Spring的前身,RodJohnson当时的观点就是:如何让应用程序能以超出当时大众所惯于接受的易用性和稳定性与J2EE平台上的不同组件合作。
Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵。最终于年3月24日,发布了1.0正式版。
配合Spring的诞生,RodJohnson在同年编著了ExpertoneononeJ2EEdesignanddevelopment一书,堪称经典,直至今日,还有不少莘莘学子将其视为Spring必读宝典。
这本书甫一面世,就在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式,影响至今。RodJohnson根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。
Spring1.0版本发布之后,Spring框架在Java社区里变得异常流行,当然这也要部分的归功于它不错的文档功能和详尽的参考文献,特别是对于一个开源项目而言尤其如此。
Spring框架的一个重要设计目标就是更容易地与已有的J2EE(现在称之为JavaEE或JEE)标准和商用工具整合。
也正因此,RodJohnson奠定了自己的江湖地位,成为一个改变Java世界的大师级人物。
版本变迁
Spring几乎已经成为现在每一位Java开发人员都耳熟能详的开发框架,不论你是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验。在现代企业级应用架构中,Spring技术栈几乎成为了Java语言的代名词。我们不妨从最初的Spring开始,看看它为什么能够横扫千*,一统江湖!
Spring版本变迁:
自年Spring1.0发布之后,Spring框架迅速发展,不断进化。1.0的出现彻底改变了开发企业级Java应用程序的方式。Spring的依赖注入与声明式事务意味着组件之间再也不存在紧耦合,再也不用重量级的EJB了。年10月,发布Spring2.0,具有可扩展的XML配置功能,用于简化XML配置,支持Java5,额外的IoC容器扩展点,支持动态语言。更小、更简单易懂的配置文件让Spring本身更便于使用年11月,Interface21项目更名SpringSource,同时发布了Spring2.5,支持Java6/JavaEE5,支持注释配置,classpath中的组件自动检测和兼容OSGi的bundle。让我们有了更优雅的面向注解的依赖注入模型(即
Component和Autowired注解),以及面向注解的SpringMVC编程模型。不用再去显式地声明应用程序组件了,也不再需要去继承某个基础的控制器类了。年12月,Spring3.0发布,具有许多重要特性,如重组模块系统,支持Spring表达式语言,基于Java的bean配置(JavaConfig),支持嵌入式数据库(如HSQL,H2和Derby),模型验证/REST支持和对JavaEE的支持。XML被取代,终于可以写出一个没有任何XML配置的Spring应用程序。年12月,Pivotal(年4月,VMware和EMC通过GE投资创建了一家名为Pivotal的合资企业。所有的Spring应用项目都转移到了Pivotal)宣布发布Spring框架4.0。包含了对Java8的全面支持,更高的第三方库依赖性(groovy1.8+,ehcache2.1+,hibernate3.6+等),JavaEE7支持,groovyDSLforbean定义,对websockets的支持以及对泛型类型的支持作为注入bean的限定符。年9月,Spring5.0GA版本发布,开始支持JDK8和JavaEE7,同时兼容JDK9。全面支持Servlet3.1,还引入了一个全新的模块SpringWebFlux用于替代老话的spring-webmvc;对Kotlin也有了更好的支持。而目前,最新的是5.3.2GA版本。具体版本可见: