首页>参考读物>计算机科学与技术>软件与程序设计

Spring Boot学习指南:构建云原生Java和Kotlin应用程序
作者 : [美]马克·赫克勒(Mark Heckler) 著
译者 : 刘红泉 译
出版日期 : 2021-09-06
ISBN : 978-7-111-69024-5
定价 : 119.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 289
开本 : 16
原书名 : Spring Boot: Up and Running
原出版社: O'Reilly Media, Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书将指导你理解Spring Boot的架构和方法,包括调试、测试和部署等主题。第1章介绍Spring Boot的三个核心特性。第2章研究创建Spring Boot应用程序时可选择的工具。第3章演示如何使用Spring Boot来开发一个基本的应用程序。第4章演示如何对Spring Boot应用程序添加数据库访问。第5章演示如何使用Spring Boot的内置配置功能、自动配置报告和执行器来灵活且动态地创建、识别和修改应用程序环境设置。第6章深入地研究数据。第7章演示如何使用Spring MVC创建应用程序。第8章介绍响应式编程。第9章讨论并演示测试Spring Boot应用程序的核心方面。第10章介绍并解释安全性的核心方面,以及它们如何应用于应用程序。第11章研究如何部署Spring Boot应用程序。第12章深入探讨响应式编程。

图书特色

图书前言

欢迎
“风筝逆风而起,而不是随风而起。”
—John Neal,出自“Enterprise and Perseverance”(《镜报》周刊)
欢迎来到Spring Boot的世界。
优秀的书是由优秀的人写的。由于每一位作者的水平不同,想侧重呈现的知识不同,对待某个知识点的观点不同,因此同一技术领域的书,内容往往各不相同。比如,一本书中删减的内容在另一本书中可能是重要知识点。
每一位开发者都有自己的观点。我的观点是,一些其他书中未涉及的基础内容对于刚接触Spring Boot的开发人员来说是必要的、有帮助的。在几十年的职业生涯中,我与世界各地不同阶段的开发人员就Spring Boot进行了交流,了解了他们各自不同的知识缺陷和开发弊端。于是,我下定决心总结这些缺失的知识和开发经验,并把一切都装进了这本书中。
本书语言简练,既适合刚接触Spring Boot的新手学习基础知识,也适合有经验的开发者找到关键功能,以便将这些功能应用到实际应用中。
感谢你和我一起踏上这段旅程。让我们开始吧!
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于表示程序清单以及段落中的程序元素,例如变量名、函数名、数据库、 数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。
等宽斜体(Constant width italic)
表示应由用户提供的值或由上下文确定的值替换的文本。
该图示表示提示或建议。
该图示表示一般性说明。
该图示表示警告或注意。
示例代码
可以从https://resources.oreilly.com/examples/0636920338727下载补充材料(示例代码、练习、勘误等)。
这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系O’Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布O’Reilly书籍中的示例代码需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处的形式包含书名、作者、出版社和ISBN,例如:
Spring Boot: Up and Running,作者Mark Heckler,由O’Reilly出版,书号978-1-098-10339-1
如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过permissions@oreilly.com联系我们。
O’Reilly在线学习平台(O’Reilly Online Learning)
40多年来,O’Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly和200多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
如何联系我们
对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至bookquestions@oreilly.com。
本书配套网站https://oreil.ly/springboot_UR上列出了勘误表、示例以及其他信息。
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http://oreilly.com。
我们在Facebook上的地址:http://facebook.com/oreilly
我们在Twitter上的地址:http://twitter.com/oreillymedia
我们在YouTube上的地址:http://www.youtube.com/oreillymedia
致谢
感谢所有鼓励我写本书的人,同时也衷心感谢在本书写作过程中支持我和提供技术反馈的人。
是你们让本书得以顺利出版,感谢你们:
致我的老板、导师和朋友Tasha Isenberg。你总是和我一起并肩作战,为我扫清工作中的障碍。非常感谢在VMware有这样一位理解我、支持我的人。
致Spring Boot、Spring Cloud、Spring Batch的创始人David Syer博士,以及无数Spring项目的贡献者。David Syer博士的见解和反馈非常独特,而且经过深思熟虑,我对此感激不尽。
致Spring Data团队的Greg Turnquist。你挑剔的眼光和直率的反馈提供了一个宝贵的额外视角,使本书更加吸引人。
致本书的编辑Corbin Collins和Suzanne(Zan)McQuade。从本书的构思到完成,你们给予我极大的支持,鼓励我拿出最好的作品,并帮助我在最后期限前完成了工作。你们是最棒的。
致Rob Romano﹑Caitlin Ghegan﹑Kim Sandoval以及整个O’Reilly制作团队。感谢你们让我冲过了终点线,确保了最后一个环节顺利进行—让本书正式出版。
致我才华横溢、充满爱心和耐心的妻子Kathy。是你激励了我,使我能够做我所要做的事情。从我的内心深处,感谢你所做的一切。

专家评论

无论你是Spring Boot的新手还是有经验的开发人员,本书都大有助益。Mark在本书中涵盖了开发Spring Boot应用程序的诸多复杂细节,通过相互关联且易于理解的代码示例,为开发人员提供了实用的指导。
—Nikhil Nanivadekar,Java Champion
Mark Heckler在本书中展现的独特技术见解和魅力没有让我失望!自从5年前加入我们的Spring开发团队以来,Mark已经成长为一名Spring专家。他数十年的行业经验以及对Spring的成熟且新颖的见解,使他能与那些想用Spring Boot开展工作的人产生共鸣,从而可以与他们进行交流。本书是Spring Boot知识的总和,是一切Spring Boot问题的答案,是学习Spring Boot的不二法门。
—Josh Long (@starbuxman),Spring开发者和倡导者
对于那些刚开始使用Spring Boot的人来说,本书是绝佳的学习指南。
—David Syer博士,VMware
Mark对如何使用Spring Boot构建应用程序提供了一个全新的视角。使用Spring Boot的人一定不要错过本书。
—Greg L. Turnquist,YouTube上Spring Boot Learning的主持人

上架指导

计算机\程序设计

封底文字

Spring Boot每月的下载量超过7500万,是目前使用最广泛的Java框架。它的易用性和强大功能彻底改变了应用程序的开发方式,使应用程序逐渐从单体形式发展到微服务。然而,Spring Boot的简单性也可能令人困惑。开发人员如何学习足够的知识来立即提高生产效率呢?本书展示了如何使用该框架来编写成功的任务关键型应用程序。
本书将带你理解Spring Boot的架构和方法,包括调试、测试和部署等主题。如果你想使用Spring Boot来快速、有效地开发云原生Java或Kotlin应用程序(使用响应式编程、构建API以及创建各种数据库访问),那么本书就是为你准备的。
学完本书,你将:
? 了解Spring Boot如何简化云原生应用程序的开发和部署。
? 构建响应式应用程序并扩展跨网络边界的通信,以创建分布式系统。
? 理解Spring Boot的架构和方法如何提高开发人员的生产效率和应用程序的可移植性。
? 能够快速、可靠地为生产工作负载部署Spring Boot应用程序。
? 监控应用程序和系统的运行状况,以获得最佳性能和可靠性。
? 轻松地调试、测试和保护基于云的应用程序。
“ 对于那些刚开始使用Spring Boot的人来说,本书是绝佳的学习指南。”
——David Syer博士
VMware
“ Mark对如何使用Spring Boot来构建应用程序提供了一个全新的视角。使用Spring Boot的人一定不要错过本书。”
——Greg L. Turnquist
YouTube上Spring Boot Learning
的主持人
Mark Heckler是VMware的一名Spring开发人员和倡导者。作为Java Champion以及Kotlin方面的Google Developer Expert,他专注于为云计算快速开发创新的、产品级的软件。他还是一名开源贡献者,也是以开发人员为中心的博客“Hecklers in Development, brewing stronger Java”的博主和管理员。

译者序

长期以来,Java开发一直为人所诟病,原因主要有以下两点:
Java项目的开发复杂度极高。
Java项目的维护非常困难。
为了在云时代实现项目的快速开发﹑快速部署﹑快速启动,我们需要一个理想的开发框架。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是简化新Spring应用程序的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot为Spring平台及第三方库提供了开箱即用的设置,其核心思想是“约定大于配置”,多数Spring Boot应用程序只需要很少的Spring配置。采用Spring Boot可以大大简化开发模式。
Spring Boot具有如下优点:
快速构建项目。
对主流开发框架的无配置集成。
项目可独立运行,无须依赖外部Servlet容器。
极大地提高了开发和部署效率。
与云计算天然集成。
微服务是未来发展的趋势,项目中所采用的架构会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小范围的工作职责,使用独立的技术,进行更安全和更频繁的部署。因此Spring Boot可以很好地满足这方面的需求。
本书适用于所有Spring Boot的用户,不仅详细介绍开发Spring Boot应用程序的细节和过程,还配有相关的代码示例,是一本非常不错的学习指南。
通过阅读本书,你可以更深入地理解Spring Boot框架,学习如何开发和部署Spring Boot应用程序,掌握当前主流的开发技术。
由于翻译水平和时间有限,译文中难免存在错误和疏漏,恳请读者批评指正。

刘红泉
2021年5月于北京

图书目录

前言 1
第1章 Spring Boot概述 5
1.1 Spring Boot的三个核心特性 5
1.1.1 用于简化依赖项管理的启动程序 5
1.1.2 用于简化部署的可执行JAR 6
1.1.3 自动配置 8
1.2 总结 9
第2章 选择工具并开始 10
2.1 Maven还是Gradle 10
2.1.1 Apache Maven 10
2.1.2 Gradle 12
2.1.3 在Maven和Gradle之间选择 13
2.2 Java还是Kotlin 13
2.2.1 Java 13
2.2.2 Kotlin 14
2.2.3 在Java和Kotlin之间选择 15
2.3 选择Spring Boot的某一版本 15
2.4 Spring Initializr 16
2.5 命令行 19
2.6 使用集成开发环境 22
2.7 了解main( ) 23
2.8 总结 25
第3章 创建你的第一个Spring Boot REST API 26
3.1 使用API的方法和原因 26
3.2 REST 27
3.3 API,HTTP动词风格 27
3.3.1 回到Initializr 28
3.3.2 创建一个简单的域 30
3.4 GET 31
3.4.1 @RestController概述 31
3.4.2 POST 35
3.4.3 PUT 35
3.4.4 DELETE 36
3.4.5 其他 36
3.4.6 信任,但要验证 38
3.5 总结 41
第4章 向Spring Boot应用程序添加数据库访问 42
4.1 启动数据库访问的自动配置 42
4.2 我们希望得到什么 43
4.2.1 添加数据库依赖项 43
4.2.2 添加代码 44
4.3 保存和检索数据 50
4.4 稍加打磨 53
4.5 总结 55
第5章 配置和检查Spring Boot应用程序 56
5.1 应用程序配置 57
5.1.1 @Value 58
5.1.2 @ConfigurationProperties 62
5.1.3 潜在的第三方选择 66
5.2 自动配置报告 68
5.3 Actuator 70
5.3.1 开启Actuator 75
5.3.2 使用Actuator提高环境适应能力 77
5.3.3 使用Actuator将日志量调大 78
5.4 总结 79
第6章 真正深入地研究数据 81
6.1 定义实体 81
6.2 模板支持 82
6.3 存储库支持 82
6.4 @Before 83
6.5 使用Redis创建基于模板的服务 83
6.5.1 初始化项目 84
6.5.2 开发Redis服务 84
6.6 从模板转换到存储库 92
6.7 使用JPA创建基于存储库的服务 95
6.7.1 初始化项目 95
6.7.2 开发JPA(MySQL)服务 96
6.7.3 加载数据 100
6.8 使用NoSQL文档数据库创建基于存储库的服务 104
6.8.1 初始化项目 104
6.8.2 开发MongoDB服务 106
6.9 使用NoSQL图形数据库创建基于存储库的服务 111
6.9.1 初始化项目 111
6.9.2 开发Neo4j服务 112
6.10 总结 120
第7章 使用Spring MVC创建应用程序 122
7.1 Spring MVC是什么 122
7.2 使用模板引擎的终端用户交互 123
7.2.1 初始化项目 123
7.2.2 开发Aircraft Positions应用程序 124
7.3 传递消息 130
7.3.1 启动PlaneFinder 131
7.3.2 扩展Aircraft Positions应用程序 134
7.4 使用WebSocket创建对话 138
7.4.1 什么是WebSocket 138
7.4.2 重构Aircraft Positions应用程序 139
7.5 总结 145
第8章 使用Project Reactor和Spring WebFlux进行响应式编程 146
8.1 响应式编程简介 146
8.2 Project Reactor 149
8.3 Tomcat与Netty 151
8.4 响应式数据访问 151
8.5 响应式Thymeleaf 162
8.6 用于全响应式进程间通信的RSocket 163
8.6.1 什么是RSocket 163
8.6.2 使RSocket工作 164
8.7 总结 168
第9章 为日益增加的生产就绪要求测试Spring Boot应用程序 169
9.1 单元测试 169
9.2 @SpringBootTest介绍 170
9.2.1 Aircraft Positions应用程序重要的单元测试 171
9.2.2 重构以更好地测试 175
9.3 测试片 181
9.4 总结 187
第10章 保护Spring Boot应用程序 188
10.1 认证和授权 188
10.1.1 认证 189
10.1.2 授权 190
10.2 Spring Security概述 190
10.2.1 HTTP防火墙 190
10.2.2 安全过滤器链 191
10.2.3 请求和响应报头 191
10.3 使用Spring Security实现基于表单的认证和授权 191
10.3.1 添加Spring Security依赖项 192
10.3.2 添加认证 197
10.3.3 授权 203
10.4 对认证和授权实现OpenID Connect和OAuth2 210
10.4.1 Aircraft Positions客户端应用程序 212
10.4.2 PlaneFinder资源服务器 218
10.5 总结 225
第11章 部署Spring Boot应用程序 226
11.1 重温Spring Boot可执行JAR 226
11.1.1 构建一个“完全可执行的”Spring Boot JAR 227
11.1.2 这是什么意思 232
11.2 扩展JAR 233
11.3 将Spring Boot应用程序部署到容器中 238
11.3.1 从IDE创建容器镜像 239
11.3.2 从命令行创建容器镜像 241
11.3.3 验证镜像是否存在 242
11.3.4 运行容器化应用程序 243
11.4 用于检查Spring Boot应用程序容器镜像的实用程序 244
11.4.1 pack 244
11.4.2 dive 246
11.5 总结 246
第12章 深入探讨响应式编程 247
12.1 什么时候进行响应式编程 247
12.2 测试响应式应用程序 248
12.2.1 首先,进行重构 249
12.2.2 现在,进行测试 255
12.3 诊断和调试响应式应用程序 262
12.3.1 Hooks.onOperatorDebug( ) 263
12.3.2 检查点 272
12.3.3 ReactorDebugAgent.init( ) 274
12.4 总结 276

教学资源推荐
作者: Al Kelley, Ira Pohl
作者: [意]阿尔贝托·博斯凯蒂(Alberto Boschetti) 卢卡·马萨罗(Luca Massaron) 著
作者: 顾元刚 等
参考读物推荐
作者: 范怀宇 著
作者: [德] 彼得?普林茨(Peter Prinz),托尼?克劳福德(Tony Crawford)著
作者: Joshua Bloch
作者: 《电脑编程技巧与维护》杂志社