内容介绍
本书是一本*而实用的Spring学习指南,介绍了Spring使用框架、Spring Boot,以及Spring系统中的其他组成部分。 本书分为4个部分,共18章。第1部分(第1章~第6章)涵盖了构建Spring应用的基础知识。第2部分(第7章~第10章)讨论了如何讲Spring应用与其他应用进行集成。第3部分(第11章~第14章)探讨了Spring对反应式编程提供的全新支持。第4部分(第15章~第18章)介绍了如何做好应用投入生产环境前的准备工作,以及如何进行部署。 本书适合刚刚开始学习Spring Boot和Spring框架的Java开发人员阅读,也适合想要*越基础知识并学习Spring新特性的经验丰富的Spring*参考。
目录
第 1部分 Spring基础
第 1章 Spring起步 3
1.1 什么是Spring 4
1.2 初始化Spring应用 6
1.2.1 使用Spring Tool Suite初始化Spring项目 7
1.2.2 检查Spring项目的结构 9
1.3 编写Spring应用 15
1.3.1 处理Web请求 16
1.3.2 定义视图 17
1.3.3 测试控制器 18
1.3.4 构建和运行应用 19
1.3.5 了解Spring Boot
DevTools 21
1.3.6 回顾一下 23
1.4 俯瞰Spring风景线 24
1.4.1 Spring核心框架 24
1.4.2 Spring Boot 24
1.4.3 Spring Data 25
1.4.4 Spring Security 25
1.4.5 Spring Integration和
Spring Batch 25
1.4.6 Spring Cloud 26
1.4.7 Spring Native 26
1.5 小结 26
第 2章 开发Web应用 27
2.1 展现信息 28
2.1.1 构建领域类 29
2.1.2 创建控制器类 32
2.1.3 设计视图 36
2.2 处理表单提交 39
2.3 校验表单输入 46
2.3.1 声明校验规则 47
2.3.2 在表单绑定的时候执行校验 49
2.3.3 展现校验错误 50
2.4 使用视图控制器 51
2.5 选择视图模板库 53
2.5.1 缓存模板 55
2.6 小结 55
第3章 使用数据 57
3.1 使用JDBC读取和写入数据 57
3.1.1 调整领域对象以适应持久化 59
3.1.2 使用JdbcTemplate 60
3.1.3 定义模式和预加载数据 66
3.1.4 插入数据 68
3.2 使用Spring Data JDBC 73
3.2.1 添加Spring Data JDBC到构建文件中 74
3.2.2 定义存储库接口 74
3.2.3 为领域类添加持久化的注解 76
3.2.4 使用CommandLineRunner预加载数据 78
3.3 使用Spring Data JPA持久化数据 80
3.3.1 添加Spring Data JPA到项目中 80
3.3.2 将领域对象标注为实体 81
3.3.3 声明JPA存储库 84
3.3.4 自定义JPA存储库 85
小结 88
第4章 使用非关系型数据 89
4.1 使用Cassandra存储库 90
4.1.1 启用Spring Data Cassandra 90
4.1.2 理解Cassandra数据模型 93
4.1.3 为Cassandra持久化映射领域类型 93
4.1.4 编写Cassandra存储库 99
4.2 编写MongoDB存储库 100
4.2.1 启用Spring Data MongoDB 101
4.2.2 将领域类型映射为文档 102
4.2.3 编写MongoDB存储库接口 105
小结 106
第5章 保护Spring 107
5.1 启用Spring Security 107
5.2 配置Spring Security 110
5.2.1 基于内存的用户详情服务 111
5.2.2 自定义用户认证 112
5.3 保护Web请求 118
5.3.1 保护请求 118
5.3.2 创建自定义的登录页 121
5.3.3 启用第三方认证 123
5.3.4 防止跨站请求伪造 126
5.4 实现方法级别的* 127
5.5 了解用户是谁 129
小结 132
第6章 使用配置属性 133
6.1 细粒度地调整自动配置 134
6.1.1 理解Spring的环境抽象 134
6.1.2 配置数据源 136
6.1.3 配置嵌入式服务器 137
6.1.4 配置日志 138
6.1.5 使用特定的属性值 140
6.2 创建自己的配置属性 140
6.2.1 定义配置属性的持有者 143
6.2.2 声明配置属性元数据 145
6.3 使用profile进行配置 147
6.3.1 定义特定profile的属性 147
6.3.2 *profile 149
6.3.3 使用profile条件化地创建bean 150
小结 151
第 2部分 Spring集成
第7章 创建REST服务 155
7.1 编写RESTful控制器 156
7.1.1 从服务器中检索数据 156
7.1.2 发送数据到服务器端 162
7.1.3 在服务器上更新数据 163
7.1.4 删除服务器上的数据 165
7.2 启用数据后端服务 165
7.2.1 调整资源路径和关系名称 168
7.2.2 分页和排序 170
7.3 消费REST服务 171
7.3.1 GET资源 173
7.3.2 PUT资源 174
7.3.3 DELETE资源 174
7.3.4 POST资源 175
小结 176
第8章 保护REST 177
8.1 OAuth 2简介 178
8.2 创建授权服务器 183
8.3 使用资源服务器保护API 190
8.4 开发客户端 193
小结 198
第9章 发送异步消息 199
9.1 使用JMS发送消息 200
9.1.1 搭建JMS环境 200
9.1.2 使用JmsTemplate发送消息 202
9.1.3 接收JMS消息 210
9.2 使用RabbitMQ和
AMQP 214
9.2.1 添加RabbitMQ到Spring中 215
9.2.2 通过RabbitTemplate发送消息 216
9.2.3 接收来自RabbitMQ的消息 220
9.3 使用Kafka的消息 224
9.3.1 为Spring搭建支持Kafka消息的环境 224
9.3.2 通过KafkaTemplate发送消息 226
9.3.3 编写Kafka监听器 228
小结 229
第 10章 Spring集成 231
10.1 声明一个简单的集成流 232
10.1.1 使用XML定义集成流 233
10.1.2 使用Java配置集成流 235
10.1.3 使用Spring Integration的DSL配置 237
10.2 Spring Integration功能概览 238
10.2.1 消息通道 239
10.2.2 过滤器 240
10.2.3 转换器 241
10.2.4 路由器 243
10.2.5 切分器 244
10.2.6 服务*器 247
10.2.7 网关 249
10.2.8 通道适配器 250
10.2.9 端点模块 252
10.3 创建电子邮件集成流 253
小结 261
第3部分 反应式Spring
第 11章 理解反应式编程 265
11.1 反应式编程概览 266
11.1.1 定义反应式流 267
11.2 初识Reactor 269
11.2.1 绘制反应式流图 270
11.2.2 添加Reactor依赖 271
11.3 使用常见的反应式操作 272
11.3.1 创建反应式类型 272
11.3.2 组合反应式类型 276
11.3.3 转换和过滤反应式流 280
11.3.4 在反应式类型上执行逻辑操作 290
小结 292
第 12章 开发反应式API 293
12.1 使用Spring WebFlux 293
12.1.1 Spring WebFlux简介 294
12.1.2 编写反应式控制器 296
12.2 定义函数式请求处理器 300
12.3 测试反应式控制器 304
12.3.1 测试GET请求 304
12.3.2 测试POST请求 307
12.3.3 使用实时服务器进行测试 308
12.4 反应式消费REST API 309
12.4.1 获取资源 310
12.4.2 发送资源 312
12.4.3 删除资源 313
12.4.4 处理错误 313
12.4.5 交换请求 315
12.5 保护反应式Web API 316
12.5.1 配置反应式Web应用的*性 317
12.5.2 配置反应式的用户详情服务 318
12.6 小结 320
第 13章 反应式持久化数 321
13.1 使用R2DBC 321
13.1.1 为R2DBC定义领域实体 322
13.1.2 定义反应式存储库 326
13.1.3 测试R2DBC存储库 328
13.1.4 定义OrderRepository的聚合根服务 330
13.2 反应式地持久化MongoDB文档数据 336
13.2.1 定义领域文档类型 337
13.2.2 定义反应式MongoDB存储库 340
13.2.3 测试反应式MongoDB存储库 340
13.3 反应式地持久化Cassandra数据 344
13.3.1 定义使用Cassandra持久化的领域类 344
13.3.2 创建反应式Cassandra存储库 348
13.3.3 测试反应式Cassandra存储库 349
小结 351
第 14章 使用RSocket 353
14.1 RSocket概览 354
14.2 创建简单的RSocket服务器和客户端 355
14.2.1 使用请求-响应通信模型 356
14.2.2 处理请求-流的消息 359
14.2.3 发送即发即忘的消息 361
14.2.4 双向发送消息 363
14.3 通过WebSocket传输RSocket 366
小结 367
第4部分 部署Spring
第 15章 使用Spring Boot Actuator 371
15.1 Actuator概览 371
15.1.1 配置Actuator的基础路径 373
15.1.2 启用和禁用Actuator端点 373
15.2 消费Actuator端点 374
15.2.1 获取应用的基础信息 375
15.2.2 查看配置细节 378
15.2.3 查看应用的活动 386
15.2.4 挖掘应用运行时的指标 388
15.3 自定义Actuator 391
15.3.1 为“/info”端点提供息 391
15.3.2 实现自定义的健康指示器 396
15.3.3 注册自定义的指标 398
15.3.4 创建自定义的端点 399
15.4 确保Actuator的* 402
小结 404
第 16章 管理Spring 405
16.1 使用Spring Boot
Admin 405
16.1.1 创建Admin服务器 406
16.1.2 注册Admin客户端 407
16.2 探索Admin服务器 409
16.2.1 查看应用基本的健康状况和信息 409
16.2.2 观察核心指标 410
16.2.3 探查环境属性 410
16.2.4 查看和设置日志级别 411
16.3 保护Admin服务器 412
16.3.1 为Admin服务器启用登录功能 412
16.3.2 为Actuator启用认证 413
小结 414
第 17章 使用JMX监控Spring 415
17.1 使用Actuator MBean 415
17.2 创建自己的MBean 418
17.3 发送通知 419
17.4 小结 421
第 18章 部署Spring 423
18.1 权衡各种部署方案 424
18.2 构建可执行JAR文件 425
18.3 构建容器镜像 426
18.3.1 部署*Kubernetes 428
18.3.2 启用优雅关机功能 430
18.3.3 处理应用程序的存活和*绪状态 431
18.4 构建和部署WAR文件 434
18.5 以终为始 436
18.6 小结 436
附录 初始化Spring应用 437
A.1 使用Spring Tool Suite初始化项目 437
A.2 使用IntelliJ IDEA初始化项目 440
A.3 使用NetBeans初始化项目 441
A.4 在start.spring.io中初始化项目 445
A.5 使用命令行初始化项目 447
A.5.1 curl和Initializr API 448
A.5.2 Spring Boot命令行接口 449
A.6 构建和运行项目 450
作者介绍
Craig Walls是Pivotal的*工程师。他是Spring框架的热心推动者,经常在本地用户组和会议上发言,撰写关于Spring的文章。在不琢磨代码的时候,Craig经常计划去迪斯尼世界或迪斯尼乐园的下一次旅行,他希望尽可能多地陪伴他的妻子、两个女儿和宠物。
发货方式
自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。
手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。
退款说明
1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);
2、营销推广类:未达到卖家描述标准的;
3、点卡软件类:所售点卡软件无法使用的;
3、发货:手动发货商品,在卖家未发货前就申请了退款的;
4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)
5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。
注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!
注意事项
1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);
2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);
3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;
6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。
送码声明
1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;
2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。
正版 steam 原子之心 Atomic Heart 国区激活码 cd...
steam 英雄连3 国区激活码CDKEY PC游戏正版 Compan...
【骑砍中文站】PC 中文Steam 骑马与砍杀2 霸主 骑砍2 豪华版...
正版 steam 原子之心 Atomic Heart 国区激活码 cd...
M,日朋礼送男友老公创意实人用星人际机器蓝牙音箱走心情节生礼...
PC中文正版Steam 消逝的光芒2 消失的光芒2 Dying Lig...
Steam 女神异闻录5 皇家版 国区激活码CDKey秒发 Perso...
Steam怪物猎人崛起 曙光DLC 激活码cdkey 怪物猎人曙光 M...
steam 只狼 激活码CDKey 只狼影逝二度 Sekiro: Sh...
steam 女神异闻录5皇家版 国区激活码CDKey P5R 女神异闻...
PC中文正版 steam平台 国区 游戏 黄金魁犬 Sunday Go...
暖雪 steam国区 激活码 CDK Warm Snow STEAM正...
夜族崛起PC中文正版steam 吸血鬼崛起V Rising 国区cdk...
正版 中国传统乐理教程 杜亚雄著 中国乐理 工尺谱 简谱 中国音乐基本...
适用于华为matex3手机壳新款matex3折叠屏真皮保护套x3典藏版...
移动机器人学:数学基础、模型构建及实现方法 [美]朗佐·凯利(Alon...
PC中文Steam上古卷轴5 天际特别版 上古卷轴5天际 老滚5 Th...
亿力擦窗机器人擦玻璃神器家用电动无线擦窗户清洗机擦窗机镜面...
美团饿了么外卖聚合无缝对接多平台自动接单打印手机报表远程查看数据全打通...
steam 只狼 激活码CDKey 只狼影逝二度 Sekiro: Sh...