第1部分 Spring基础 3
第1章 Spring起步 3
1.1 什么是Spring 4
1.2 初始化Spring应用 6
1.2.1 使用Spring Tool Suite初始化Spring项目 7
1.2.2 检查Spring项目的结构 10
1.3 编写Spring应用 16
1.3.1 处理Web请求 16
1.3.2 定义视图 17
1.3.3 测试控制器 18
1.3.4 构建和运行应用 20
1.3.5 了解SpringBootDevTools 21
1.3.6 回顾一下 23
1.4 俯瞰Spring风景线 24
1.4.1 Spring核心框架 24
1.4.2 Spring Boot 25
1.4.3 SpringData 25
1.4.4 Spring Security 25
1.4.5 Spring Integration和Spring Batch 26
1.4.6 Spring Cloud 26
1.5 小结 26
第2章 开发Web应用 27
2.1 展现信息 27
2.1.1 构建领域类 28
2.1.2 创建控制器类 30
2.1.3 设计视图 33
2.2 处理表单提交 37
2.3 校验表单输入 43
2.3.1 声明校验规则 43
2.3.2 在表单绑定的时候执行校验 45
2.3.3 展现校验错误 46
2.4 使用视图控制器 48
2.5 选择视图模板库 49
2.6 小结 52
第3章 使用数据 53
3.1 使用JDBC读取和写入数据 53
3.1.1 调整领域对象以适应持久化 55
3.1.2 使用JdbcTemplate 56
3.1.3 定义模式和预加载数据 61
3.1.4 插入数据 63
3.2 使用Spring Data JPA持久化数据 72
3.2.1 添加SpringData JPA到项目中 72
3.2.2 将领域对象标注为实体 73
3.2.3 声明JPA repository 76
3.2.4 自定义JPA repository 77
3.3 小结 80
第4章 保护Spring 81
4.1 启用SpringSecurity 81
4.2 配置Spring Security 83
4.2.1 基于内存的用户存储 85
4.2.2 基于JDBC的用户存储 86
4.2.3 以LDAP作为后端的用户存储 89
4.2.4 自定义用户认证 92
4.3 保护Web请求 100
4.3.1 保护请求 100
4.3.2 创建自定义的登录页 103
4.3.3 退出 105
4.3.4 防止跨站请求伪造 106
4.4 了解用户是谁 107
4.5 小结 109
第5章 使用配置属性 111
5.1 细粒度的自动配置 112
5.1.1 理解Spring的环境抽象 112
5.1.2 配置数据源 114
5.1.3 配置嵌入式服务器 115
5.1.4 配置日志 116
5.1.5 使用特定的属性值 118
5.2 创建自己的配置属性 118
5.2.1 定义配置属性的持有者 120
5.2.2 声明配置属性元数据 123
5.3 使用profile进行配置 125
5.3.1 定义特profile的属性 126
5.3.2 激活profile 127
5.3.3 使用profile条件化地创建bean 128
5.4 小结 129
第2部分 Spring集成 133
第6章 创建REST服务 133
6.1 编写RESTful控制器 134
6.1.1 从服务器中检索数据 136
6.1.2 发送数据到服务器端 140
6.1.3 在服务器上更新数据 142
6.1.4 删除服务器上的数据 144
6.2 启用超媒体 145
6.2.1 添加超链接 147
6.2.2 创建资源装配器 149
6.2.3 命名嵌套式的关联关系 154
6.3 启用数据后端服务 155
6.3.1 调整资源路径和关系名称 157
6.3.2 分页和排序 159
6.3.3 添加自定义的端点 160
6.3.4 为Spring Data端点添加自定义的超链接 162
6.4 小结 163
第7章 消费REST服务 165
7.1 使用RestTemplate消费REST端点 166
7.1.1 GET资源 167
7.1.2 PUT资源 169
7.1.3 DELETE资源 169
7.1.4 POST资源 169
7.2 使用Traverson导航REST API 170
7.3 小结 172
第8章 发送异步消息 173
8.1 使用JMS发送消息 174
8.1.1 搭建JMS环境 174
8.1.2 使用JmsTemplate发送消息 176
8.1.3 接收JMS消息 183
8.2 使用RabbitMQ和AMQP 186
8.2.1 添加RabbitMQ到Spring中 188
8.2.2 通过RabbitTemplate发送消息 189
8.2.3 接收来自RabbitMQ的消息 192
8.3 使用Kafka的消息 196
8.3.1 为Spring搭建支持Kafka消息的环境 197
8.3.2 通过KafkaTemplate发送消息 198
8.3.3 编写Kafka监听器 200
8.4 小结 201
第9章 Spring集成 203
9.1 声明一个简单的集成流 204
9.1.1 使用XML定义集成流 205
9.1.2 使用Java配置集成流 207
9.1.3 使用Spring Integration的DSL配置 209
9.2 SpringIntegration功能概览 210
9.2.1 消息通道 211
9.2.2 过滤器 212
9.2.3 转换器 213
9.2.4 路由器 214
9.2.5 切分器 216
9.2.6 服务激活器 218
9.2.7 网关 220
9.2.8 通道适配器 221
9.2.9 端点模块 223
9.3 创建Email集成流 224
9.4 小结 229
第3部分 反应式Spring 233
第10章 理解反应式编程 233
10.1 反应式编程概览 234
10.2 初识Reactor 237
10.2.1 绘制反应式流图 238
10.2.2 添加Reactor依赖 239
10.3 使用常见的反应式操作 240
10.3.1 创建反应式类型 240
10.3.2 组合反应式类型 244
10.3.3 转换和过滤反应式流 248
10.3.4 在反应式类型上执行逻辑操作 258
10.4 小结 259
第11章 开发反应式API 261
11.1 使用SpringWebFlux 261
11.1.1 Spring WebFlux简介 262
11.1.2 编写反应式控制器 264
11.2 定义函数式请求处理器 268
11.3 测试反应式控制器 271
11.3.1 测试GET请求 271
11.3.2 测试POST请求 274
11.3.3 使用实时服务器进行测试 275
11.4 反应式消费REST API 276
11.4.1 获取资源 277
11.4.2 发送资源 279
11.4.3 删除资源 280
11.4.4 处理错误 280
11.4.5 交换请求 282
11.5 保护反应式WebAPI 283
11.5.1 配置反应式Web应用的安全性 284
11.5.2 配置反应式的用户详情服务 285
11.6 小结 287
第12章 反应式持久化数据 289
12.1 理解SpringData的反应式概况 290
12.1.1 Spring Data反应式本质论 290
12.1.2 反应式和非反应式类型之间的转换 291
12.1.3 开发反应式repository 292
12.2 使用反应式的Cassandra repository 293
12.2.1 启用SpringData Cassandra 293
12.2.2 理解Cassandra的数据模型 296
12.2.3 将领域对象映射为Cassandra持久化 296
12.2.4 编写反应式Cassandra repository 301
12.3 编写反应式的MongoDB repository 304
12.3.1 启用SpringData MongoDB 304
12.3.2 将领域对象映射为文档 306
12.3.3 编写反应式的MongoDBrepository接口 309
12.4 小结 312
第4部分 云原生Spring 315
第13章 注册和发现服务 315
13.1 思考微服务 316
13.2 搭建服务注册中心 318
13.2.1 配置Eureka 321
13.2.2 扩展Eureka 324
13.3 注册和发现服务 325
13.3.1 配置Eureka客户端属性 326
13.3.2 消费服务 328
13.4 小结 332
第14章 管理配置 333
14.1 共享配置 334
14.2 运行配置服务器 335
14.2.1 启用配置服务器 336
14.2.2 填充配置仓库 339
14.3 消费共享配置 341
14.4 提供特定应用和profile的属性 343
14.4.1 提供特定应用的属性 343
14.4.2 提供来自profile的属性 344
14.5 保持配置属性的私密性 346
14.5.1 在Git中加密属性 346
14.5.2 在Vault中存储私密信息 349
14.6 在运行时刷新配置属性 353
14.6.1 手动刷新配置属性 354
14.6.2 自动刷新配置属性 356
14.7 小结 363
第15章 处理失败和延迟 365
15.1 理解断路器模式 365
15.2 声明断路器 367
15.2.1 缓解延迟 369
15.2.2 管理断路器的阈值 371
15.3 监控失败 372
15.3.1 Hystrix Dashboard简介 373
15.3.2 理解Hystrix的线程模型 375
15.4 聚合多个Hystrix流 377
15.5 小结 378
第5部分 部署Spring 381
第16章 使用Spring Boot Actuator 381
16.1 Actuator概览 382
16.1.1 配置Actuator的基础路径 383
16.1.2 启用和禁用Actuator端点 383
16.2 消费Actuator端点 384
16.2.1 获取应用的基础信息 385
16.2.2 查看配置细节 388
16.2.3 查看应用的活动 396
16.2.4 获取应用的指标 398
16.3 自定义Actuator 401
16.3.1 为“/info”端点提供信息 401
16.3.2 实现自定义的健康指示器 405
16.3.3 注册自定义的指标 407
16.3.4 创建自定义的端点 408
16.4 保护Actuator 411
16.5 小结 413
第17章 管理Spring 415
17.1 使用Spring BootAdmin 415
17.1.1 创建Admin服务器 416
17.1.2 注册Admin客户端 418
17.2 探索Admin服务器 421
17.2.1 查看应用基本的健康状况和信息 421
17.2.2 观察核心指标 423
17.2.3 探查环境属性 424
17.2.4 查看和设置日志级别 424
17.2.5 监控线程 425
17.2.6 跟踪HTTP请求 426
17.3 保护Admin服务器 428
17.3.1 为Admin服务器启用登录功能 428
17.3.2 为Actuator启用认证 429
17.4 小结 429
第18章 使用JMX监控Spring 431
18.1 使用Actuator MBean 431
18.2 创建自己的MBean 434
18.3 发送通知 436
18.4 小结 437
第19章 部署Spring 439
19.1 权衡各种部署方案 440
19.2 构建和部署WAR文件 441
19.3 推送JAR文件到CloudFoundry上 443
19.4 在Docker容器中运行Spring Boot 445
19.5 以终为始 449
19.6 小结 449
附录 初始化Spring应用 451
A.1 使用Spring Tool Suite初始化项目 451
A.2 使用IntelliJ IDEA初始化项目 454
A.3 使用NetBeeans初始化项目 457
A.4 在start.spring.io中初始化项目 459
A.5 使用命令行初始化项目 462
A.5.1 curl和Initializr API 462
A.5.2 Spring Boot命令行接口 464
A.6 使用元框架创建Spring应用 465
A.7 构建和运行项目 465
- 《Maya 2018完全实战技术手册》来阳编著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《星空摄影后期实战》阿五在路上著 2020
- 《半小时漫画股票实战法》财经杂质著 2019
- 《深度学习与飞桨PaddlePaddle Fluid实战》于祥 2019
- 《数字插画实战 人像创作30例》王鲁光著 2019
- 《2017国家执业药师资格考试 全考点实战通关必备 中药学综合知识与技能 第3版》国家执业药师资格考试命题研究专家组 2017
- 《微软Azure实战参考》李竞,陈勇华编著 2019
- 《Cocos Creator微信小游戏开发实战》王绍明编著 2020