好书推荐 好书速递 排行榜 读书文摘

Spring实战(第6版)

Spring实战(第6版)
作者:Craig Walls
译者:张卫滨 / 吴国浩
出版社:人民邮电出版社
出版年:2022-12
ISBN:9787115598691
行业:其它
浏览数:3

内容简介

本书是一本经典而实用的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开发者参考。

......(更多)

作者简介

Craig Walls是Pivotal的高级工程师。他是Spring框架的热心推动者,经常在本地用户组和会议上发言,撰写关于Spring的文章。在不琢磨代码的时候,Craig经常计划去迪斯尼世界或迪斯尼乐园的下一次旅行,他希望尽可能多地陪伴他的妻子、两个女儿和宠物。

......(更多)

目录

第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

......(更多)

读书文摘

It all started with a bean.

On the other hand, completely uncoupled code doesn't do anything.

......(更多)

猜你喜欢

点击查看