精通Spring:Java Web开发与Spring Boot高级功能
- ISBN:9787115539441
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:340
- 出版时间:2020-06-01
- 条形码:9787115539441 ; 978-7-115-53944-1
本书特色
本书是使用Spring进行Java Web开发的指导手册,介绍了Spring Framework的演变——从解决可测试应用程序的问题到在云端构建分布式应用程序。本书介绍了Spring 5.0的新增功能,讲解如何使用Spring MVC构建应用程序,然后全面阐释如何使用Spring Framework构建并扩展微服务,以及如何开发和部署云应用程序。读者会了解应用程序架构的进化过程——从单体架构到围绕微服务构建的架构。此外,本书还介绍了Spring Boot的高级功能,并通过强大的示例演示这些功能。
内容简介
本书是使用Spring进行Java Web开发的指导手册,介绍了Spring Framework的演变——从解决可测试应用程序的问题到在云端构建分布式应用程序。本书介绍了Spring 5.0的新增功能,讲解如何使用Spring MVC构建应用程序,然后全面阐释如何使用Spring Framework构建并扩展微服务,以及如何开发和部署云应用程序。读者会了解应用程序架构的进化过程——从单体架构到围绕微服务构建的架构。此外,本书还介绍了Spring Boot的不错功能,并通过强大的示例演示这些功能。
目录
1.1 Spring Framework 1
1.2 Spring Framework为什么流行 2
1.2.1 简化了单元测试 2
1.2.2 减少了衔接代码 3
1.2.3 架构灵活性 4
1.2.4 与时俱进 4
1.3 Spring模块 5
1.3.1 Spring核心容器 5
1.3.2 横切关注点 5
1.3.3 Web层 6
1.3.4 业务层 6
1.3.5 数据层 6
1.4 Spring项目 6
1.4.1 Spring Boot 7
1.4.2 Spring Cloud 7
1.4.3 Spring Data 8
1.4.4 Spring Batch 8
1.4.5 Spring Security 8
1.4.6 Spring HATEOAS 9
1.5 Spring Framework 5.0中的新增功能 9
1.5.1 基准升级 10
1.5.2 JDK 9运行时兼容性 10
1.5.3 在Spring Framework代码中使用JDK 8功能 11
1.5.4 反应式编程支持 11
1.5.5 函数式Web框架 11
1.5.6 Java通过Jigsaw实现模块化 12
1.5.7 Kotlin支持 13
1.5.8 已停用的功能 14
1.6 Spring Boot 2.0的新增功能 14
1.7 小结 15
第 2章 依赖注入 16
2.1 了解依赖注入 16
2.1.1 了解依赖项 17
2.1.2 Spring IoC容器 19
2.1.3 使用模拟对象进行单元测试 26
2.1.4 容器托管bean 28
2.1.5 依赖注入类型 28
2.1.6 Spring bean作用域 30
2.1.7 Java与XML配置 30
2.1.8 @Autowired 注解详解 31
2.1.9 其他重要的Spring注解 32
2.1.10 上下文和依赖注入 32
2.2 小结 33
第3章 使用Spring MVC 构建Web应用程序 34
3.1 Java Web应用程序架构 34
3.1.1 Model 1架构 35
3.1.2 Model 2架构 35
3.1.3 Model 2前端控制器架构 36
3.2 基本流 37
3.2.1 基本设置 38
3.2.2 流1——不包含视图的简单控制器流 39
3.2.3 流2——包含视图的简单控制器流 42
3.2.4 流3——控制器通过模型重定向到视图 45
3.2.5 流4——控制器通过ModelAndView重定向到视图 47
3.2.6 流5——重定向到包含表单的视图的控制器 48
3.2.7 流6——在上一个流中添加验证功能 51
3.3 Spring MVC概述 54
3.3.1 重要特性 54
3.3.2 工作机制 55
3.4 Spring MVC背后的重要概念 56
3.4.1 RequestMapping 56
3.4.2 视图解析 58
3.4.3 处理程序映射和拦截器 59
3.4.4 模型属性 61
3.4.5 会话属性 62
3.4.6 @InitBinder注解 63
3.4.7 @ControllerAdvice注解 63
3.5 Spring MVC——高级功能 64
3.5.1 异常处理 64
3.5.2 国际化 66
3.5.3 对Spring 控制器进行集成测试 68
3.5.4 提供静态资源 69
3.5.5 集成Spring MVC与Bootstrap 71
3.6 Spring Security 72
3.6.1 添加Spring Security依赖项 73
3.6.2 配置过滤器以拦截所有请求 73
3.6.3 注销 74
3.7 小结 75
第4章 向微服务和云原生应用程序进化 76
4.1 使用Spring的典型Web应用程序架构 77
4.1.1 Web层 77
4.1.2 业务层 78
4.1.3 数据层 78
4.1.4 集成层 79
4.1.5 横切关注点 79
4.2 Spring解决的问题 79
4.2.1 松散耦合和可测试性 80
4.2.2 衔接代码 80
4.2.3 轻量级架构 80
4.2.4 架构灵活性 80
4.2.5 简化横切关注点的实现过程 81
4.2.6 免费的设计模式 81
4.3 应用程序开发目标 81
4.3.1 速度 82
4.3.2 安全保障 83
4.3.3 可扩展性 84
4.4 单体应用面临的挑战 84
4.4.1 漫长的发布周期 85
4.4.2 难以扩展 85
4.4.3 适应新技术 85
4.4.4 适应新方法 85
4.4.5 适应现代化开发实践 85
4.5 了解微服务 85
4.5.1 什么是微服务 86
4.5.2 微服务架构 86
4.5.3 微服务的特点 88
4.5.4 微服务的优势 91
4.5.5 微服务面临的挑战 92
4.6 云原生应用程序 94
4.7 Spring项目 98
4.7.1 Spring Boot 98
4.7.2 Spring Cloud 99
4.8 小结 99
第5 章 使用Spring Boot构建微服务 100
5.1 什么是Spring Boot 100
5.1.1 快速构建微服务器原型 101
5.1.2 主要目标 101
5.1.3 非功能性特性 102
5.2 Spring Boot Hello World 102
5.2.1 配置spring-boot-starter-parent 102
5.2.2 用所需的starter项目配置pom.xml 105
5.2.3 配置spring-boot-maven-plugin 106
5.2.4 创建第 一个Spring Boot启动类 107
5.2.5 运行Hello World应用程序 ....... 108
5.2.6 自动配置 110
5.2.7 starter项目 113
5.3 什么是REST 114
5.4 首个REST服务 115
5.4.1 返回字符串的简单方法 116
5.4.2 返回对象的简单REST方法 118
5.4.3 包含路径变量的GET方法 120
5.5 创建待办事项资源 121
5.5.1 请求方法、操作和URI 122
5.5.2 bean和服务 122
5.5.3 检索待办事项列表 124
5.5.4 检索特定待办事项的详细信息 126
5.5.5 添加待办事项 128
5.6 Spring Initializr 132
5.7 自动配置概述 136
5.8 小结 138
第6章 扩展微服务 139
6.1 异常处理 139
6.2 HATEOAS 144
6.3 验证 147
6.3.1 对控制器方法启用验证 148
6.3.2 定义bean验证 148
6.3.3 验证功能单元测试 149
6.4 编写REST服务文档 149
6.5 使用Spring Security确保REST服务的安全 156
6.5.1 添加Spring Security starter 157
6.5.2 基本身份验证 157
6.5.3 OAuth 2身份验证 159
6.6 国际化 164
6.7 缓存 166
6.7.1 spring-boot-startercache 166
6.7.2 启用缓存 167
6.7.3 缓存数据 167
6.7.4 JSR-107缓存注解 167
6.8 小结 168
第7章 Spring Boot的高级功能 169
7.1 配置外部化 169
7.1.1 通过application.properties自定义框架 170
7.1.2 application.properties中的自定义属性 173
7.1.3 配置文件 176
7.1.4 其他定义应用程序配置值的选项 178
7.1.5 YAML配置 178
7.2 嵌入式服务器 179
7.2.1 切换到Jetty和Undertow 182
7.2.2 构建WAR文件 183
7.3 开发者工具 183
7.4 Spring Boot Actuator 184
7.4.1 HAL浏览器 185
7.4.2 配置属性 187
7.4.3 环境细节 188
7.4.4 运行状况 189
7.4.5 映射 189
7.4.6 bean 190
7.4.7 度量 191
7.4.8 自动配置 193
7.4.9 调试 194
7.5 部署应用程序到云端 194
7.6 小结 196
第8章 Spring Data 197
8.1 背景信息——数据存储 197
8.2 Spring Data 198
8.2.1 Spring Data Commons 199
8.2.2 Spring Data JPA 200
8.3 Spring Data Rest 212
8.3.1 GET方法 213
8.3.2 POST方法 214
8.3.3 搜索资源 215
8.4 大数据 215
8.5 小结 217
第9章 Spring Cloud 218
9.1 Spring Cloud 简介 218
9.2 演示微服务设置 220
9.2.1 微服务A 220
9.2.2 服务消费方 223
9.3 集中式微服务配置 225
9.3.1 问题陈述 225
9.3.2 解决方案 226
9.3.3 选项 226
9.3.4 Spring Cloud Config 227
9.4 Spring Cloud Bus 233
9.4.1 Spring Cloud Bus需求 233
9.4.2 使用Spring Cloud Bus传播配置更改 233
9.4.3 实现 234
9.5 声明式REST客户端——Feign 235
9.6 负载均衡 237
9.7 名称服务器 240
9.8 名称服务器的工作机制 240
9.8.1 选项 241
9.8.2 实现 241
9.9 API 网关 245
9.10 分布式跟踪 250
9.10.1 分布式跟踪选项 250
9.10.2 实现Spring Cloud Sleuth和Zipkin 251
9.11 Hystrix——容错 256
9.12 小结 257
第 10章 Spring Cloud Data Flow 258
10.1 基于消息的异步通信 258
10.2 用于异步消息传递的Spring项目 260
10.2.1 Spring Integration 261
10.2.2 Spring Cloud Stream 261
10.2.3 Spring Cloud Data Flow 262
10.3 Spring Cloud Stream 263
10.3.1 Spring Cloud Stream架构 263
10.3.2 事件处理——股票交易示例 264
10.4 Spring Cloud Data Flow 269
10.4.1 高级架构 270
10.4.2 实现Spring Cloud Data Flow 271
10.4.3 Spring Cloud Data Flow REST API 280
10.5 Spring Cloud Task 281
10.6 小结 282
第 11章 反应式编程 283
11.1 反应式宣言 283
11.2 反应式用例——股价页面 285
11.2.1 传统方法 285
11.2.2 反应式方法 286
11.2.3 传统与反应式方法比较 286
11.3 Java反应式编程 287
11.3.1 反应式流 287
11.3.2 Reactor 288
11.3.3 Spring Web Reactive 292
11.3.4 反应式数据库 298
11.4 小结 302
第 12章 Spring*佳实践 303
12.1 Maven标准目录布局 303
12.2 分层架构 304
12.3 异常处理 306
12.3.1 Spring的异常处理方法 307
12.3.2 推荐的处理方法 307
12.4 确保简化Spring配置 308
12.4.1 在ComponentScan中使用basePackageClasses属性 308
12.4.2 不在架构引用中使用版本号 308
12.4.3 强制性依赖项首选构造函数注入而不是setter注入 309
12.5 管理Spring项目的依赖项版本 309
12.6 单元测试 311
12.6.1 业务层 311
12.6.2 Web层 312
12.6.3 数据层 312
12.6.4 其他*佳实践 313
12.7 集成测试 313
12.7.1 Spring Session 314
12.7.2 示例 315
12.8 缓存 316
12.8.1 添加Spring Boot Starter Cache依赖项 317
12.8.2 添加缓存注解 317
12.9 日志记录 317
12.9.1 Logback 317
12.9.2 Log4j2 318
12.9.3 独立于框架的配置 319
12.10 小结 319
第 13章 在Spring 中使用Kotlin 320
13.1 Kotlin 320
13.2 Kotlin与Java 321
13.2.1 变量和类型推断 321
13.2.2 变量和不变性 322
13.2.3 类型系统 322
13.2.4 函数 323
13.2.5 数组 324
13.2.6 集合 324
13.2.7 未受检异常 325
13.2.8 数据类 326
13.3 在Eclipse 中创建Kotlin项目 326
13.3.1 Kotlin插件 326
13.3.2 创建Kotlin项目 327
13.3.3 创建Kotlin类 329
13.3.4 运行Kotlin类 330
13.4 使用Kotlin创建Spring Boot项目 331
13.4.1 依赖项和插件 332
13.4.2 Spring Boot应用程序类 333
13.4.3 Spring Boot应用程序测试类 334
13.5 使用Kotlin实现REST服务 335
13.5.1 返回字符串的简单方法 335
13.5.2 返回对象的简单REST方法 337
13.5.3 包含路径变量的GET方法 338
13.6 小结 340
作者简介
兰加·拉奥·卡拉南(Ranga Rao Karanam) 高级架构师、培训课程讲师,在Java开发方面有15年以上的工作经验。目前在Udemy有约22万名学生,在YouTube有约6万位视频订阅者。他在个人网站in28Minutes提供短小精悍的视频课,教你使用Spring、Spring Boot和Spring Cloud等工具高效开发和部署Java企业级应用程序和微服务。 【译者简介】 石华耀 IT/本地化资深自由翻译,擅长软硬件、网站本地化、各种技术文档翻译,曾参与Microsoft、Lenovo、Oracle、Cisco、ICAAN等企业及组织机构的大型项目。译著包括《IDA Pro权威指南》(及第2版)、《黑客攻防技术宝典:Web实战篇》(及第2版)等。联系邮箱:shy1639@outlook.com。 熊珅 三峡大学2018届硕士研究生,热衷于英语学习与翻译,多次参加英语演讲比赛和英语翻译大赛,并取得一定成绩。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥19.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0