以下文字告诉你Spring Boot脱颖而出的秘密——
《Spring实战》译者序
时光回到2004年,Spring Framework 1.0正式发布,同年,Rod Johnson的Expert one-on-one J2EE Development without EJB一经出版就震撼了整个Java世界。不知不觉,12年就这么过去了,Spring已然成为Java应用开发的事实标准,影响着无数Java开发者。
刚才打开Spring的官网,已经能看到Spring Framework 5.0.0 SNAPSHOT的身影了,而Spring的家族也早就不再是Spring Framework一枝独秀,Spring Data、Spring Batch、Spring Security等一大堆名字让人看得眼花缭乱。其中最引人瞩目的无疑就是Spring Boot了,它正是本书的主角。
Spring Boot从无数知名企业的实践中吸取经验,总结并落实到框架中。如果说Spring Framework的目标是帮助开发者写出好的系统,那Spring Boot的目标就是帮助开发者用更少的代码,更快地写出好的生产系统。
Spring Boot为开发者带来了更好的开发体验,但写完代码只是万里长征路上的一小步,后续的运维工作才是让很多人真正感到无助的。Spring Boot在运维方面做了很多工作,部署、监控、度量,无一不在其涉猎范围之内,结合Spring Cloud后还可以轻松地实现服务发现、服务降级等功能。
2014年,Spring Source的Josh Long在向我介绍Spring Boot时,我不断重复一句话:“这个功能我们也做了。”的确,国内的百度、阿里、腾讯,国外的Amazon、Facebook、Twitter、Netflix等一票大公司都在框架和系统建设上有大量投入,为了提升性能和可用性,大家做了很多卓有成效的工作。现在,Spring Boot让人人都能享受业内顶级公司的“福利”,站在巨人的肩膀之上,想想都让人觉得兴奋。
说起为何想要翻译本书,那只能说是缘分使然。笔者当年在机缘巧合之下与Spring结缘,也因它结识了很多朋友。毫不夸张地说,是Spring开启了我的作译者生涯,先后参与了Spring官方文档、《Spring专业开发指南》和《Spring攻略》的翻译。
本以为在完成了30岁前每年翻译一本书的目标后,我应该不会再去翻译什么东西了,甚至在向图灵的编辑推荐本书时,我都没有想到最后会是自己来翻译这本书。不得不感叹一声,缘分就是如此妙不可言的东西。相信后续Spring Boot会有更好地发展,因为它牢牢抓住了开发者的需求。Craig的《Spring实战》已经到了第4版,本书应该也会有第2版,此时此刻正捧着本书的您会成为它的译者吗?至少让我们一起来为自己喜欢的技术贡献一份力量吧。
丁雪丰
2016年7月于上海
《Spring Boot实战》前言
在1964年的纽约世界博览会上,沃特·迪士尼向世界介绍了三件有开创意义的东西:“小小世界”(it's a small world)、“与林肯先生共度的伟大时刻”(Great Moments with Mr. Lincoln)以及“文明演进之旋转木马”(Carousel of Progress)。1所有这三样东西随后都搬进了迪士尼乐园和迪士尼世界,你今天仍能看见它们。
1关于这届世博会里迪士尼相关的信息,详见http://www.dwz.cn/2Hrvyh中的Disney influence部分。——译者注
其中,我最喜欢的是“文明演进之旋转木马”,这大约也是沃特·迪士尼的最爱之一。这既是骑行,又是舞台表演,座位区域围绕着中心区域旋转,上演四场表演,讲述了一个家庭在20世纪不同时代(分别是20世纪初、20世纪20年代、20世纪40年代和近年)的故事,突出了不同年代技术的进步。从手摇洗衣机,到电灯和收音机,到自动洗碗机和电视,再到电脑和声控家电,无一不在述说着创新的故事。2
2关于这个游乐设施,详见http://www.yesterland.com/progress.html的介绍。——译者注
在每幕表演中,父亲(也是演出的叙述者)都会讲述最新的发明,并带上一句“这玩意儿不能更好了”,到头来却发现随着技术的进步,它的确变得更好了。
比起这场舞台演出,Spring的历史要短得多。但是对于Spring,我的感受和“演进老爹”(Progress Dad)对20世纪的体会相似。似乎每个Spring应用程序都让开发者的生活更上一个台阶,仅从Spring组件的声明和织入方式就能看出端倪。让我们来看看Spring历史中的一些演化历程。
-
Spring 1.0的出现彻底改变了我们开发企业级Java应用程序的方式。Spring的依赖注入与声明式事务意味着组件之间再也不存在紧耦合,再也不用重量级的EJB了。这玩意儿不能更好了。
-
到了Spring 2.0,我们可以在配置里使用自定义的XML命名空间,更小、更简单易懂的配置文件让Spring本身更便于使用。这玩意儿不能更好了。
-
Spring 2.5让我们有了更优雅的面向注解的依赖注入模型(即
@Component
和@Autowired
注解),以及面向注解的Spring MVC编程模型。不用再去显式地声明应用程序组件了,也不再需要去继承某个基础的控制器类了。这玩意儿不能更好了。 -
到了Spring 3.0,我们有了一套基于Java的全新配置,它能够取代XML。在Spring 3.1里,一系列以
@Enable
开头的注解进一步完善了这一特性。终于,我们第一次可以写出一个没有任何XML配置的Spring应用程序了。这玩意儿不能更好了。 -
Spring 4.0对条件化配置提供了支持,根据应用程序的Classpath、环境和其他因素,运行时决策将决定使用哪些配置,忽略哪些配置。那些决策不需要在构建时通过编写脚本确定了;以前会把选好的配置放在部署的包里,现在情况不同了。这玩意儿不能更好了。
现在轮到Spring Boot了。虽然Spring的每个版本都让我们觉得一切都不能更好了,但Spring Boot还是向我们证明了Spring仍然有巨大的潜力。事实上,我相信Spring Boot是长久以来Java开发历程里最意义深刻、激动人心的东西。
以历代Spring Framework的进步为基础,Spring Boot实现了自动配置,这让Spring能够智能探测正在构建何种应用程序,自动配置必要的组件以满足应用程序的需要。对于那些常见的配置场景,不再需要显式地编写配置了,Spring会替你料理好一切。
选择在构建时和运行时要包含在应用程序里的库,往往要花费不少工夫,而Spring Boot的起步依赖(starter dependency)将常用依赖聚合在一起,借此简化一切。它不仅简化了你的构建说明,还让你不必苦思冥想特定库和版本。
针对使用Groovy来开发Spring应用程序,Spring Boot的命令行界面提供了一个令人瞩目的选项,它将Java应用程序开发过程中的噪声降到最低,开发方式平易近人。有了Spring Boot CLI,就不再需要访问方法了,不再需要诸如public
与private
之类的访问修饰符,也不再需要分号或者return
关键字。在许多场景中,import
语句都可以去掉。因为你是在命令行里以脚本方式运行应用程序,所以连构建说明都能免了。
Spring Boot的Actuator让你能一窥应用程序运行时的内部工作细节,看看Spring应用程序上下文里都有哪些Bean,Spring MVC控制器是怎么与路径映射的,应用程序都能取到哪些配置属性,诸如此类。
Spring Boot为我们带来了这么多奇妙的特性,这玩意儿当然不能更好了!
本书中你将看到,Spring Boot着实让Spring比以前更好了。我们将一同去了解自动配置、Spring Boot起步依赖、Spring Boot CLI和Actuator。我们还会去摆弄一下Grails的最新版本,它就是基于Spring Boot的。临近末尾,你也许会觉得Spring不可能更好了。
如果说迪士尼的“文明演进之旋转木马”告诉了我们什么事情,那就是当我们觉得什么东西不可能更好了的时候,它一定会变得更好。Spring Boot的进步正在带来越来越大的益处。真的难以想象Spring还能变得更好,但它肯定会更好。毫无疑问,Spring的前景总是美好的。
高效Java开发利器
Spring Boot in Action
http://www.ituring.com.cn/book/1884
作者:Craig Walls
译者:丁雪丰
页数:224
定价:59
电子版:29.99
-
畅销书《Spring实战》作者Craig Walls最新力作
-
Spring技术权威专家Josh Long(龙之春)推荐
-
全面分析Spring Boot核心功能和特性
《Spring Boot实战》是Spring Boot的终极指南,以自动配置、起步依赖、命令行界面和Actuator这四个核心特性为基础,深入介绍Spring Boot的用法,让所有Java开发人员不费吹灰之力就构建出满足生产需求的服务,真正享受技术达人的乐趣!
☟ 购买《Spring Boot实战》
文章评论