第1章 Spring 5概述 1
1.1 Spring与Java EE 2
1.2 Spring简史 6
1.3 Spring 5的新特性 8
实战1.4 快速开启第一个Spring应用 12
1.5 Gradle与Maven的抉择 17
第2章 Spring框架核心概念 26
2.1 Spring框架总览 27
2.2 IoC容器 32
2.3 AOP编程 93
2.4 资源处理 107
2.5 Bean验证 111
2.6 表达式语言SpRL 113
2.7 数据缓冲器和编解码器 129
2.8 空安全 130
第3章 测试 131
3.1 测试概述 132
3.2 测试的类型和范围 134
3.3 如何进行微服务的测试 137
第4章 单元测试 147
4.1 Mock对象 148
4.2 测试工具类 149
第5章 集成测试 150
5.1 集成测试概述 151
5.2 测试相关的注解 153
5.3 Spring TestContext框架 166
5.4 Spring MVC Test框架 186
新功能5.5 WebTestClient 201
第6章 事务管理 205
6.1 事务管理概述 206
6.2 通过事务实现资源同步 210
6.3 声明式事务管理 212
6.4 编程式事务管理 225
6.5 事件中的事务 226
第7章 DAO 228
7.1 DAO概述 229
7.2 DAO常用异常类 229
7.3 DAO常用注解 230
第8章 基于JDBC的数据访问 231
8.1 Spring JDBC概述 232
8.2 JDBC核心类 234
8.3 控制数据库连接 248
8.4 批处理 251
8.5 SimpleJdbc类 254
8.6 JDBC转为对象模型 258
8.7 内嵌数据库 271
8.8 初始化DataSource 280
第9章 基于ORM的数据访问 281
9.1 Spring ORM概述 282
9.2 ORM集成注意事项 283
9.3 集成Hibernate 284
9.4 JPA 290
第10章 XML与对象的转换 296
10.1 XML解析概述 297
10.2 XML的序列化与反序列化 297
10.3 常用XML解析工具 302
第11章 Spring Web MVC 311
11.1 Spring Web MVC概述 312
11.2 DispatcherServlet 312
11.3 过滤器 323
11.4 控制器 325
11.5 URI处理 335
11.6 异常处理 337
11.7 异步请求 340
11.8 CORS处理 344
11.9 HTTP缓存 348
11.10 MVC配置 350
11.11 视图处理 358
新功能11.12 HTTP/2 362
实战11.13 基于Spring Web MVC的REST接口 363
第12章 REST客户端 369
12.1 RestTemplate 370
新功能12.2 WebClient 370
实战12.3 基于RestTemplate的天气预报服务 371
第13章 WebSocket 379
13.1 WebSocket概述 380
13.2 WebSocket常用API 381
13.3 SockJS 388
13.4 STOMP 392
实战13.5 基于STOMP的聊天室 408
第14章 Spring WebFlux 418
新功能14.1 响应式编程概述 419
新功能14.2 Spring中的响应式编程 422
新功能14.3 DispatcherHandler 426
新功能14.4 控制器 427
新功能14.5 常用函数 429
新功能14.6 WebFlux相关配置 434
新功能14.7 CORS处理 439
第15章 响应式编程中的WebClient 442
新功能 重点15.1 retrieve()方法 443
新功能 重点15.2 exchange()方法 444
新功能15.3 请求主体 444
新功能15.4 生成器 446
新功能15.5 过滤器 447
新功能 实战15.6 基于WebClient的文件上传、下载 447
第16章 响应式编程中的WebSocket 451
16.1 WebSocket概述 452
16.2 WebSocket常用API 452
新功能16.3 WebSocketClient 454
第17章 常用集成模式 455
17.1 Spring集成模式概述 456
17.2 使用RMI 456
17.3 使用Hessian 457
17.4 使用HTTP 459
17.5 Web服务 460
17.6 JMS 463
17.7 REST服务 465
第18章 EJB集成 468
18.1 EJB集成概述 469
18.2 EJB集成的实现 469
第19章 JMS集成 471
19.1 JMS集成概述 472
19.2 Spring JMS 473
19.3 发送消息 475
19.4 接收消息 477
19.5 JCA消息端点 480
19.6 基于注解的监听器 481
19.7 JMS命名空间 484
难点19.8 基于JMS的消息发送、接收 485
第20章 JMX集成 498
20.1 JMX集成概述 499
20.2 bean转为JMX 499
20.3 bean的控制管理 503
20.4 通知 507
第21章 JCA CCI集成 510
21.1 JCA CCI集成概述 511
21.2 配置CCI 511
21.3 使用CCI进行访问 513
21.4 CCI访问对象建模 516
21.5 CCI中的事务处理 518
第22章 使用E-mail 519
22.1 使用E-mail概述 520
22.2 实现发送E-mail 520
22.3 使用MimeMessageHelper 522
实战22.4 实现E-mail服务器 524
第23章 任务执行与调度 529
23.1 任务执行与调度概述 530
23.2 TaskExecutor 530
23.3 TaskScheduler 532
23.4 任务调度及异步执行 533
23.5 使用Quartz Scheduler 537
实战23.6 基于Quartz Scheduler的天气预报系统 538
第24章 缓存 543
24.1 缓存概述 544
24.2 声明式缓存注解 544
24.3 JCache注解 548
24.4 基于XML的声明式缓存 549
24.5 配置缓存存储 550
实战24.6 基于缓存的天气预报系统 551
第25章 Spring Boot 555
25.1 从单块架构到微服务架构 556
25.2 微服务设计原则 559
25.3 Spring Boot概述 562
实战25.4 开启第一个Spring Boot项目 568
第26章 Spring Cloud 577
新功能26.1 Spring Cloud概述 578
新功能26.2 Spring Cloud入门配置 579
新功能26.3 Spring Cloud的子项目介绍 582
新功能 实战26.4 实现微服务的注册与发现 585
附录 592
附录A EJB规范摘要 593
附录B Bean Validation内置约束 595
附录C 提升Gradle的构建速度 597
附录D 本书所采用的技术及相关版本 598
参考文献 599