History of Spring Framework and Spring Boot

最近看到Hacker News上的一篇关于Spring Framework和Spring Boot的文章,简单翻译一下。

原文链接:History of Spring Framework and Spring Boot

Spring框架与Spring Boot的历史

简介

Spring框架可以认为是在Java开发者中最流行的应用开发框架了。它通常由许多提供广泛服务的模块构成。包括模块容器、为构建横切关注点提供支持的面向切面编程、安全框架、数据存取框架、Web应用框架以及为模块测试提供支持的类。所有这些组件都通过依赖注入粘合在一起。依赖注入(也称为控制反转)使设计和测试松散耦合的软件模块变得容易。Spring框架的当前版本为4.3.x,下一个主版本5.0计划在2017年的四季度进行发布。

多年来Spring框架已变得足够成熟。几乎所有Java企业应用需要用到的基础组件都可以在Spring框架中找到。但在一个新应用中将所有需要的Spring组件整合并配置好并不容易。这包括在gradle/maven中设置依赖库,使用xml、注解或java代码配置需要的Spring Bean。Spring开发者意识到这里的绝大多数工作是可以可以自动化的,Spring Boot出现了!

Spring Boot在构建Spring应用上是“固执己见”的,之所以这样讲,是因为对Spring中的每一个主要用例,Spring Boot都定义了一系列的默认组件依赖和自动配置。Spring Boot通过使用一系列的Starter Projects来实现这个功能。想要构建一个Spring Web应用?只需要在spring-boot-starter-web中添加依赖即可!想要使用Spring邮件库?只需要添加spring-boot-starter-mail依赖即可!Spring Boot还有一些其他特性,诸如嵌入式应用服务器、基于Groovy的命令行接口和健康度/测度监控等。

Spring Boot使Java开发者可以使用所需要的Spring框架组件来快速开始一个新项目。本文揭示了Spring框架和Spring Boot是如果从2002年简陋的开始变为基于Java的微服务应用开发领域的实际领导者的。如果没有足够时间,可以直接查看Spring 时间线信息图

Spring框架的历史

开始

在2002年十月,Rod Johnson 写了本书,名叫《Expert One-on-One J2EE Design and Development》,并由Wrox出版。该书描述了当前Java企业应用开发的情形,并指出了一些使用 Java EE 和 EJB 组件框架的不足。在书中,他也提出了一种基于普通Java类(POJO - plain old java objects)和依赖注入的解决方案。下面是书中的一段摘录:

流程逻辑中心化到抽象父类是一种控制反转的例子。不同于传统类库中用户代码调用库代码的方式,这种新的方式中,顶层类中的框架
代码调用用户代码。
这也被称为“好莱坞原则”:“不要打给我,我会打给你”。倾向于重度使用模板设计模式的控制的反转是整个框架的基础。

在书中,他展示了一种不使用 EJB 的高质量、可拓展的在线预约应用是如何构建的。为了构建应用,他写了超过30000行的基础代码。其中包括许多可复用的 Java 接口和类,诸如 ApplicationContext 和 BeanFactory。因为 Java 接口是依赖注入的基本模块,所以他给这些类的根包命名为 com.interface21 。Rod 后来解释说,名字中的21是参照了21世纪!

《One-on-One J2EE Design and Development》很快变得火热。书中免费提供的大部分基础代码都是高可复用的,很快一些开发者就在项目中开始使用它们。Wrox为其创建了一个网页,提供源代码和勘误。同时还提供了在线论坛。有趣的是,15年之后,这本书和其中的提到的原则依然跟高质量 Java Web 应用构建相关。我强烈建议在你的收藏中添加这一份。

Spring出世

在书出版之后不久,开发者 Juergen Hoeller 和 Yann Caroff 说服 Rod Johnson 基于基础代码创建一个开源项目。 Rod、Juergen 与 Yann 大约在2003年二月开始合作该项目。Yann 为新框架了杜撰了“spring”的名字。根据 Rod 所说,spring代表了在传统 J2EE 的冬天之后的一个新的开始。下面是截取自2003年一月份《Yann Caroff's review of Rod's book》中的一段。


在2003年六月,spring 0.9在Apache 2.0 许可下发布。在2004年三月,spring 1.0 发布。有趣的是,在1.0发布之前,spring 就已被开发者广泛接受。在2004年8月,Rod Johnson、Juergen Hoeller、Keith Donald 和 Colin Sampaleanu 共同创立了interface21,一家专注于 spring 咨询、培训与支持的公司。

Yann Caroff在早些时候离开了团队。Rod Johnson 在2012年离开spring团队,Juergen Hoeller 依然是 spring 开发团队中的的活跃分子。

Spring框架的快速成长

##

Spring Boot的历史

在2012年十月,Mike Youngstrom 在 spring jira 中提交了一个特征请求,希望在 spring 框架中提供无容器 Web 应用架构支持。他讨论了在 main 方法启动的 spring container 中注册 web container 服务。下面是 jira 请求的一段摘录:


这个请求导致了在2013年早期的 spring boot 项目的启动。在2014年四月,spring boot 1.0.0 发布。此后一系列的 spring boot 小版本发布。

▪ Spring boot 1.1 (2014年6月) 

▪ Spring boot 1.2 (2015年3月)

▪ Spring boot 1.3 (2016年12月)

▪ Spring boot 1.4 (2017年1月)

▪ Spring boot 1.5 (2017年2月)

Spring boot 的简便使得其迅速被 Java 开发者广泛的应用在项目中。Spring boot 可以认为是构建基于微服务的 REST 应用的一种最快方法。它也非常适用于 docker 容器部署与快速原型。

Spring IO与Spring Boot

##

Spring新特性

##

Spring 时间轴信息图

下面是Spring历史速览


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值