Spring发展历程 (三)

起点

2002年10月,Rod Johnson撰写了一本名为《Expert One-on-One J2EE设计和开发》的书。本书由Wrox出版,涵盖了当时Java企业应用开发的状态,并指出了Java EE和EJB组件框架中的一些主要缺陷。在这本书中,他提出了一个基于普通Java类(POJO-plain old java objects,简单的java对象)和依赖注入的更简单的解决方案。以下是本书的摘录:

将工作流逻辑集中到抽象超类中是控制反转的一个例子。与用户代码调用库代码的传统类库不同,在此方法中,超类中的框架代码调用用户代码。它也被称为好莱坞原则:“不要打电话给我,我会给你打电话”。控制反转是框架的基础,它倾向于大量使用模板方法模式。

在书中,他展示了如何在不使用EJB的情况下构建高质量,可扩展的在线座位预定应用。为了构建应用,他编写了超过30000行的基础结构代码!它包含许多可重用的Java接口和类,如ApplicationContext和BeanFactory。由于java接口是依赖注入的基本构建块,因此他将这些类的根包命名为com.interface21。正如Rod Johnson后来解释的那样,21是对21世纪的一种相关!

本书一炮而红。一部分免费提供的大部分基础架构代码都是高度可重用的,很快一些开发人员就开始在他们的项目中使用它。Wrox为该书提供了源代码和勘误表的网页。他们还为本书提供了一个在线论坛。有趣的是,即使在15年后,本书及其原则仍然与构建高质量的Java Web应用相关。

诞生

在本书发布后不久,开发者Juergen Hoeller和Yann Caroff说服Rod Johnson创建一个基于基础结构代码的开源项目。Rod,Juergen和Yann于2003年2月左右开始合作该项目。Yan为新框架创造了“Spring”的名字。据Rod介绍,Spring是传统J2EE的“冬天”之后的新开始!

Rod Johnson的书以非常详尽,详实和实用的方式介绍了J2EE最佳实践的世界。从编码标准,idioms,单元测试,设计决策,持久性,缓存,EJB,model-2表示层,视图,验证技术到性能的公平批评,读者都可以体会从理论到实践,制约因素,风险以及最佳做法。本书确实是一个知识库。

2003年6月,Spring 0.9在Apache 2.0许可下发布。2004年3月,1.0版发布。有趣的是,即使在1.0发布之前,spring也被开发人员广泛采用。2004年8月,Rod Johnson,Juergen Hoeller,Keith Donald和Colin Sampaleanu共同创立了一家专注于Spring咨询,培训和支持的公司interface21。Yann Caroff在早期离开了团队。Rod Johnson在2012年离开了团队。Juergen Hoeller仍然是Spring开发团队的积极成员。

快速发展

自2004年1.0版本发布以来,Spring框架迅速发展。Spring 2.0于2006年10月发布,到那时,Spring的下载量超过了100万。Spring 2.0具有可扩展的XML配置功能,用于简化XML配置,支持Java 5,额外的IoC容器扩展,支持动态语言(如groovy,aop增强功能和新的bean范围)。

在Rod领导下管理Spring项目的Interface21公司于2007年11月更名为SpringSource。同时发布了Spring 2.5。Spring 2.5中的主要新功能包括支持Java 6/Java EE 5,支持注释配置,classpath中的组件自动检测和兼容OSGi的bundle。

2007年,SpringSource从资本获得了A轮融资(1000万美元)。SpringSource在2008年通过来自加速合作伙伴和B轮融资筹集了额外资本。SpringSource在此期间收购了多家公司(Covalent,Hyperic,G2One等)。2009年8月,SpringSource以4.2亿美元被VMWare收购!SpringSource在几周内收购了cloud foundry,这是一家云PaaS提供商。2015年,cloud foundry转移到了非营利cloud foundry基金会。

2009年12月,Spring 3.0发布。Spring 3.0具有许多重要特性,如重组模块系统,支持Spring表达式语言,基于Java的bean配置(JavaConfig),支持嵌入式数据库(如HSQL,H2和Derby),模型验证/ REST支持和对Java EE 6的支持。

2011年和2012年发布了许多3.x系列的小版本。2012年7月,Rod Johnson离开了团队。2013年4月,VMware和EMC通过GE投资创建了一家名为Pivotal的合资企业。所有的6应用项目都转移到了Pivotal。

2013年12月,Pivotal宣布发布Spring框架4.0。Spring 4.0是Spring框架的一大进步,它包含了对Java 8的全面支持,更高的第三方库依赖性(groovy 1.8+,ehcache 2.1+,hibernate 3.6+等),Java EE 7支持,groovy DSL for bean定义,对websockets的支持以及对泛型类型的支持作为注入bean的限定符。

2014年至2017年期间发布了许多Spring框架4.x.x版本。当前的Spring框架版本(4.3.7)于2017年3月发布。Spring框架4.3.8于2017年4月发布,并将成为4.x系列中的最后一个。Spring框架的下一个延续的主要版本是在5.0版本展开。

总结

上面详细介绍了Spring整个的发展历程,这里做下总结:

1、Spring1.x 时代

在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置文件中切换。

2、Spring2.x时代

随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行申明和注入spring2.5),大大的减少了xml配置文件,同时也大大简化了项目的开发。那么,问题来了,究竟是应该使用xml还是注解呢?我们最终选择的是应用的基本配置(如数据库配置)使用xml,业务的配置用注解。

3、Spring3.x到Spring4.x

从Spring3.x开始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean,现在我们就处于这个时代,并且Spring4.x和Spring boot都推荐使用java配置的方式。
 

你可能感兴趣的:(Spring)