


内 容 提 要
本书以 Spring 应用程序开发为中心,全面讲解如何运用 Spring Boot 提高效率,使应用程序的开发和管
理更加轻松有趣。作者行文亲切流畅,以大量示例讲解了 Spring Boot 在各类情境中的应用,内容涵盖起步依赖、
Spring Boot CLI、Groovy、Grails、Actuator。对于 Spring Boot 开发应用中较为繁琐的内容,附录奉上整理完
毕的表格,一目了然,方便读者查阅。
本书适合全体 Java 开发人员。
定价:59.00元
读者服务热线:
(
010
)
51095186转600 印装质量热线:
(
010
)
81055316
反盗版热线:
(
010
)
81055315
广告经营许可证:京东工商广字第 8052 号
著 [美] Craig Walls
译 丁雪丰
责任编辑 朱 巍
执行编辑 张 憬
责任印制 彭志环
人民邮电出版社出版发行
北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
北京 印刷
开本:800×1000 1/16
印张:14
字数:331千字 2016年 9 月第 1 版
印数:1
—
3 500册 2016年 9 月北京第 1 次印刷
著作权合同登记号 图字:01-2016-4638号
◆
◆
◆

4 前 言
译者序
时光回到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月于上海

序 1
1
2
3
4
5
8
10
11
9
6
7
序
2014年春天,Netflix的交付工程团队开始着手实现一个伟大的目标——通过一个软件平台来
实现端到端的全局持续交付,该平台有利于系统的可扩展性及弹性。为了满足Netflix的交付与部
署需要,我的团队曾构建了两套不同的应用程序,但这两套应用程序都有演变成庞然大物的趋势,
而且都没能满足灵活性和弹性的目标。更重要的是,这些庞大的应用程序最终还拖了我们的后腿,
让我们跟不上合作伙伴的创新步伐。用户开始回避我们的工具,而不是使用它们。
很明显,如果想要向公司证明自己的真正价值并快速创新,我们需要把庞然大物分解成小的
独立服务,这些服务要能随时发布。拥抱微服务架构给我们带来了希望,让我们能实现灵活性与
弹性的双重目标。但是我们需要在一个可靠的基础上实现这一架构,它要能实现真正的并发、合
理的监控、可靠易用的服务发现,运行时还要有极好的性能。
我们要在JVM上寻找一款框架,它要直接提供快速开发的能力和强大的运维能力。最终,我
们找到了Spring Boot。
Spring Boot能用寥寥数行代码构建一套基于Spring并满足生产要求的服务,不费吹灰之力!
实际上,一个简单的Spring Boot Hello World应用程序能放进一条推文里,这在短短几年之前还是
完全不可能的事情。它还自带了不少非功能性的特性,比如安全、度量、健康检查、内嵌服务器
和外置配置,这些都让选择Spring Boot成为了一件顺理成章的事情。
然而,踏上Spring Boot之旅后,我们却发现手头没有好的文档。要搞明白怎么利用好框架的
特性,只能依靠源码,这可不是个让人愉快的办法。
Manning那本著名的《Spring实战》的作者再度接受挑战,将Spring Boot的核心用法写成了另
一本好书,对此我一点都不吃惊。毫无疑问,Craig和Manning的团队又做成了一件了不起的大事!
正如我们所料,《Spring Boot实战》是一本通俗易懂的好书。
从第1章引人入胜的介绍以及富有传奇色彩的90字符推文应用程序,一直到第7章对Spring
Boot的Actuator(提供了很多生产应用程序所需的神奇的运维特性)的深度分析,《Spring Boot实
战》做到了知无不言,言无不尽。实际上,对我而言,第7章对Actuator的深度分析解答了不少问
题,这些问题自一年多以前我开始使用Spring Boot后,就一直萦绕在我的脑海里。第8章对部署
选项的透彻研究让我大开眼界,了解到Cloud Foundry在云部署方面是如此简便。第4章是我最喜
欢的章节之一,Craig揭示了很多强大的选项,它们能很方便地测试Spring Boot应用程序。从一开
始我就惊喜于Spring的测试特性,而Spring Boot将它们发挥得淋漓尽致。
正如上文中我所说的那样,Spring Boot正是十几年来Java社区所探寻
的那种框架。它那简单